home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Gold Collection / Software Vault - The Gold Collection (American Databankers) (1993).ISO / cdr53 / cismsg15.zip / BATSYS.SC next >
Text File  |  1993-06-04  |  101KB  |  3,159 lines

  1. ;*************************************************************************
  2. ; Formatted Source Listing
  3. ; Date : 05/26/93
  4. ; Time : 15:42:11
  5. ;
  6. ; System : CISMSG  The PARADOX-CIS Message Program
  7. ; File Name : C:\CIS\BATSYS.SC
  8. ; By : James Cap Walker and Mark Houpt with HELP from Freinds!
  9. ; Last modified 05/16/93  11:29:08 am
  10. ; Copyright (c) 1992-1993  BAT-Systems Consulting
  11. ; This program is represents a collection of code by:
  12. ; Tony Goodman
  13. ; Dan Erhmann
  14. ; Angelo Loudon
  15. ; Dan Paolini
  16. ; Desmond Nolan
  17. ; John Nelson
  18. ; Michael Hyatt
  19. ; James Cap Walker
  20. ; Michael J. Hyatt
  21. ;*************************************************************************
  22.  
  23.  
  24.  
  25. LIBNAME="Paradox"
  26.  
  27.  
  28. PROCSTEP.N = 0
  29. PROCTOTAL.N = 37
  30.  
  31. ;══════════════════════════BSC═══════════════════════════════════════
  32. ; PROCEDURE   : MainMenu
  33. ; AUTHOR      : Mark T. Houpt
  34. ; PARAMETERS  : N\A
  35. ; RETURNS     :
  36. ; Special Info: Generated by Weston Brothers wbsLIB
  37. ;
  38. ;═══════════════════════════BSC════════════════════════════════════════
  39.  
  40. PROC MAINMENU()
  41.     IF NOT ISASSIGNED(AUTOLIB) THEN
  42.         AUTOLIB = "Paradox"
  43.     ENDIF
  44.     IF SETUP <> 1 THEN
  45.        start.m()
  46.     ENDIF
  47.  
  48.     SPLASHSCR(1)
  49.     WHILE TRUE
  50.         SYSINFO TO SYSVAL
  51.         SETCANVAS DEFAULT
  52.         PAINTCANVAS FILL "░" ATTRIBUTE SYSCOLOR(1000) 1, 0, SYSVAL["SCREENHEIGHT"] - 2, SYSVAL["SCREENWIDTH"] - 1
  53.         RELEASE VARS SYSVAL
  54.  
  55.         SHOWPULLDOWN
  56.             "≡" : "System Menu" : "≡"
  57.             SUBMENU
  58.                 "About" : "About Box" : "≡/About",
  59.                 "Clock" : "Clock" : "≡/Clock",
  60.                 "System" : "System Information" : "≡/System",
  61.                 "" : "" : "≡/",
  62.                 "Set~U~p" :  "SetUp Directory for MSG and CAT Files" : "≡/SetUp",
  63.                 "" : "" : "≡/",
  64.                 "Backup" : "Backup All Files" : "≡/Backup",
  65.                 "" : "" : "≡/",
  66.                 "Documentation" : "Program Documentation" : "≡/DocFile",
  67.                 "" : "" : "≡/",
  68.                 "Shell to ~D~OS" : "" : "≡/Shell to DOS"
  69.             ENDSUBMENU,
  70.             "Messages" : "Messages Menu" : "Messages"
  71.             SUBMENU
  72.                 "View ALL Messages" : "View All Stored Messages" : "Messages/View ALL",
  73.                 "" : "" : "Messages/",
  74.                 "Convert New CIS Messages" : "Convert New CIS Messages" : "Messages/Convert New CIS Messages",
  75.                 "View ~L~ast Import" : "View most recent Inport of Messages" : "Messages/View Last Import",
  76.                 "" : "" : "Messages/",
  77.                 "Query Message Database" : "Query Message Database for Specific Forums" : ""
  78.                 SUBMENU
  79.                    "Query By ~F~orum Only" : "Query Message Database for Specific Forums" : "Messages/Query Message Database",
  80.                    "Query By ~S~ection Only" : "Query Message Database for Specific Section" : "Messages/Query Message Database Section",
  81.                    "~Q~uery Section By Subject" : "Query Message Sections for Selected Subjects" : "Messages/Query Message Database Section-Subject"
  82.                  ENDSUBMENU,
  83.                 "View Query ~R~esults" : "View Results table for Message Query" : "Messages/View Query Results"
  84.             ENDSUBMENU,
  85.             "Catalogs" : "Catalog Data Libraries" : "Catalogs"
  86.             SUBMENU
  87.                 "View ALL Catalogs" : "View ALL files in CAT Table" : "Catalogs/View ALL Files",
  88.                 "" : "" : "Catalogs/",
  89.                 "Convert New CIS Catalogs" : "Convert and Import New CAT Files" : "Catalogs/Convert and Import CAT Files",
  90.                 "View ~L~ast Import" : "View most recent Inport of Catalog" : "Catalogs/View Last Import",
  91.                 "" : "" : "Catalogs/",
  92.                 "Query Catalog Database" : "Query Catalog Database for Specific Forums" : "Catalogs/Query Message Database",
  93.                 "View Query ~R~esults" : "View Results table for Catalog Query" : "Catalogs/View Query Results"
  94.             ENDSUBMENU,
  95.             "WorkSheets" : "WorkSheet Menu" : "WorkSheets"
  96.             SUBMENU
  97.                 "Msg Count" : "Add Message Count To Qpro " : "WorkSheets/Msg Count"
  98.             ENDSUBMENU,
  99.             "Reports" : "Reports Menu" : "Reports"
  100.             SUBMENU
  101.                 "All Forum Messages" : "Report all Forum Messages" : "Reports/All Forum Messages",
  102.                 "Last Forum Messages" : "Report forum Messages from Last Import" : "Reports/Last Forum Messages",
  103.                 "Query Message Report" : "Report all Messages in Most Recent Query" : "Reports/Query Message Report",
  104.                 "" : "" : "Reports/",
  105.                 "Catalog Report" : "Report ALL Catalog Entries" : "Reports/Catalog Report"
  106.             ENDSUBMENU,
  107.             "Exit" : "Exit Menu" : "Exit"
  108.             SUBMENU
  109.                 "Exit to Paradox" : "Exit to Paradox if Available" : "Exit/Exit to Paradox",
  110.                 "Quit Program" : "" : "Exit/Quit Program"
  111.             ENDSUBMENU
  112.         ENDMENU
  113.  
  114.         GETMENUSELECTION KEYTO KEYCODE TO MENUSEL
  115.  
  116.         ; SaveAutolib = Autolib
  117.  
  118.         SWITCH
  119.             CASE RETVAL = FALSE :
  120.                 QUITLOOP
  121.  
  122.             CASE MENUSEL = "≡/About" :
  123.                 CLEARMESSAGE.U()
  124.                 SHOWPULLDOWN
  125.                 ENDMENU
  126.                 WBSFILLSCREEN()
  127.                 SHOWABOUTBOX()
  128.                 SPLASHSCR(2)
  129.  
  130.  
  131.             CASE MENUSEL = "≡/Clock" :
  132.                 CLEARMESSAGE.U()
  133.                 SHOWPULLDOWN
  134.                 ENDMENU
  135.                 WBSFILLSCREEN()
  136.                 TIMEDISPLAY()
  137.                 SPLASHSCR(2)
  138.  
  139.             CASE MENUSEL = "≡/System" :
  140.                 CLEARMESSAGE.U()
  141.                 SHOWPULLDOWN
  142.                 ENDMENU
  143.                 WBSFILLSCREEN()
  144.                 SYSINFOPROC()
  145.                 SPLASHSCR(2)
  146.  
  147.             CASE MENUSEL = "≡/SetUp" :
  148.                 CLEARMESSAGE.U()
  149.                 SHOWPULLDOWN
  150.                 ENDMENU
  151.                 WBSFILLSCREEN()
  152.                 start.m()
  153.                 SPLASHSCR(2)
  154.  
  155.  
  156.             CASE MENUSEL = "≡/Backup" :
  157.                 CLEARMESSAGE.U()
  158.                 SHOWPULLDOWN
  159.                 ENDMENU
  160.                 WBSFILLSCREEN()
  161.                 BACKUPMANAGER()
  162.                 SPLASHSCR(2)
  163.  
  164.             CASE MENUSEL = "≡/DocFile" :
  165.                 CLEARMESSAGE.U()
  166.                 SHOWPULLDOWN
  167.                 ENDMENU
  168.                 WBSFILLSCREEN()
  169.                 VIEWDOC()
  170.                 SPLASHSCR(2)
  171.  
  172.             CASE MENUSEL = "≡/" :
  173.  
  174.             CASE MENUSEL = "≡/Shell to DOS" :
  175.                 CLEARMESSAGE.U()
  176.                 RUN BIG "command"
  177.                 SPLASHSCR(2)
  178.  
  179.  
  180.             CASE MENUSEL = "Messages/View ALL" :
  181.                 CLEARMESSAGE.U()
  182.                 SHOWPULLDOWN
  183.                 ENDMENU
  184.                 WBSFILLSCREEN()
  185.                 ICISTAT1UPDATE("Icistat")
  186.                 SPLASHSCR(2)
  187.  
  188.             CASE MENUSEL = "Messages/" :
  189.             CASE MENUSEL = "Messages/Convert New CIS Messages" :
  190.                 CLEARMESSAGE.U()
  191.                 SHOWPULLDOWN
  192.                 ENDMENU
  193.                 WBSFILLSCREEN()
  194.  
  195.                 SWITCH
  196.                     CASE FILEHANDLE[1] = 1 OR FILEHANDLE[1] = 3 OR FILEHANDLE[1] =BLANKNUM():
  197.                         MtHImportFile(1,1,TRUE,1,1)  ;msg not ozcis
  198.                     CASE FILEHANDLE[1] = 2:
  199.                         MtHImportFile(1,2,TRUE,1,1)  ;msg not
  200.                 ENDSWITCH
  201.                 SPLASHSCR(2)
  202.  
  203.             CASE MENUSEL = "Messages/View Last Import" :
  204.                 CLEARMESSAGE.U()
  205.                 SHOWPULLDOWN
  206.                 ENDMENU
  207.                 WBSFILLSCREEN()
  208.                 ICISTAT1UPDATE("Last")
  209.                 SPLASHSCR(2)
  210.  
  211.             CASE MENUSEL = "Messages/" :
  212.             CASE MENUSEL = "Messages/Query Message Database" :
  213.                 CLEARMESSAGE.U()
  214.                 SHOWPULLDOWN
  215.                 ENDMENU
  216.                 WBSFILLSCREEN()
  217.                 GETDIAG(1)
  218.                 SPLASHSCR(2)
  219.  
  220.             CASE MENUSEL = "Messages/Query Message Database Section" :
  221.                 CLEARMESSAGE.U()
  222.                 SHOWPULLDOWN
  223.                 ENDMENU
  224.                 WBSFILLSCREEN()
  225.                 GETDIAG(3)
  226.                 release vars allsect.y, showsect.y
  227.                 SPLASHSCR(2)
  228.  
  229.             CASE MENUSEL = "Messages/Query Message Database Section-Subject" :
  230.                 CLEARMESSAGE.U()
  231.                 SHOWPULLDOWN
  232.                 ENDMENU
  233.                 WBSFILLSCREEN()
  234.                 GETDIAG(4)
  235.                 release vars allsect.y, showsect.y
  236.                 SPLASHSCR(2)
  237.  
  238.  
  239.             CASE MENUSEL = "Messages/View Query Results" :
  240.                 CLEARMESSAGE.U()
  241.                 SHOWPULLDOWN
  242.                 ENDMENU
  243.                 WBSFILLSCREEN()
  244.                 ICISTAT1UPDATE("QueryMsg")
  245.                 SPLASHSCR(2)
  246.  
  247.             CASE MENUSEL = "Catalogs/View ALL Files" :
  248.                 CLEARMESSAGE.U()
  249.                 SHOWPULLDOWN
  250.                 ENDMENU
  251.                 WBSFILLSCREEN()
  252.                 ICISTAT1UPDATE("Idl")
  253.                 SPLASHSCR(2)
  254.  
  255.             CASE MENUSEL = "Catalogs/Convert and Import CAT Files" :
  256.                 CLEARMESSAGE.U()
  257.                 SHOWPULLDOWN
  258.                 ENDMENU
  259.                 WBSFILLSCREEN()
  260.                 SWITCH
  261.                     CASE FILEHANDLE[1] = 1 OR FILEHANDLE[1] = 3 OR FILEHANDLE[1] =BLANKNUM():
  262.                         MtHImportFile(2,1,TRUE,1,1)  ;cat not ozcis
  263.                     CASE FILEHANDLE[1] = 2:
  264.                         MtHImportFile(2,2,TRUE,1,1)  ;cat ozcis
  265.                 ENDSWITCH
  266.                 SPLASHSCR(2)
  267.  
  268.             CASE MENUSEL = "Catalogs/View Last Import" :
  269.                 CLEARMESSAGE.U()
  270.                 SHOWPULLDOWN
  271.                 ENDMENU
  272.                 WBSFILLSCREEN()
  273.                 ICISTAT1UPDATE("lastdl")
  274.                 SPLASHSCR(2)
  275.  
  276.             CASE MENUSEL = "Catalogs/" :
  277.             CASE MENUSEL = "Catalogs/Query Message Database" :
  278.                 CLEARMESSAGE.U()
  279.                 SHOWPULLDOWN
  280.                 ENDMENU
  281.                 WBSFILLSCREEN()
  282.                 GETDIAG(2)
  283.                 SPLASHSCR(2)
  284.  
  285.             CASE MENUSEL = "Catalogs/View Query Results" :
  286.                 CLEARMESSAGE.U()
  287.                 SHOWPULLDOWN
  288.                 ENDMENU
  289.                 WBSFILLSCREEN()
  290.                 ICISTAT1UPDATE("lastdl")
  291.                 SPLASHSCR(2)
  292.  
  293.  
  294.             CASE MENUSEL = "WorkSheets/Msg Count" :
  295.                 CLEARMESSAGE.U()
  296.                 SHOWPULLDOWN
  297.                 ENDMENU
  298.                 WBSFILLSCREEN()
  299.                 GETMSGCOUNT()
  300.                 SPLASHSCR(2)
  301.  
  302.             CASE MENUSEL = "Reports/All Forum Messages" :
  303.                 CLEARMESSAGE.U()
  304.                 SHOWPULLDOWN
  305.                 ENDMENU
  306.                 WBSFILLSCREEN()
  307.                 GETRPT(1)
  308.                 SPLASHSCR(2)
  309.  
  310.             CASE MENUSEL = "Reports/Last Forum Messages" :
  311.                 CLEARMESSAGE.U()
  312.                 SHOWPULLDOWN
  313.                 ENDMENU
  314.                 WBSFILLSCREEN()
  315.                 GETRPT(2)
  316.                 SPLASHSCR(2)
  317.  
  318.             CASE MENUSEL = "Reports/Query Message Report" :
  319.                 CLEARMESSAGE.U()
  320.                 SHOWPULLDOWN
  321.                 ENDMENU
  322.                 WBSFILLSCREEN()
  323.                 GETRPT(3)
  324.                 SPLASHSCR(2)
  325.  
  326.             CASE MENUSEL = "Reports/" :
  327.             CASE MENUSEL = "Reports/Catalog Report" :
  328.                 CLEARMESSAGE.U()
  329.                 SHOWPULLDOWN
  330.                 ENDMENU
  331.                 WBSFILLSCREEN()
  332.                 GETRPT(4)
  333.                 SPLASHSCR(2)
  334.  
  335.             CASE MENUSEL = "Exit/Exit to Paradox" :
  336.  
  337.                 CLEARMESSAGE.U()
  338.                 SHOWPULLDOWN
  339.                 ENDMENU
  340.                 WBSFILLSCREEN()
  341.                 LEAVEAPP(1)
  342.  
  343.  
  344.             CASE MENUSEL = "Exit/Quit Program" :
  345.                 CLEARMESSAGE.U()
  346.                 SHOWPULLDOWN
  347.                 ENDMENU
  348.                 WBSFILLSCREEN()
  349.                 LEAVEAPP(2)
  350.  
  351.  
  352.         ENDSWITCH
  353.  
  354.         ; Autolib = SaveAutolib
  355.     ENDWHILE
  356.  
  357.     CLEARPULLDOWN
  358.  
  359. ENDPROC
  360. WRITELIB LIBNAME MAINMENU
  361. RELEASE VARS MAINMENU
  362. LB_DISPLAYPROGRESS.U(PROCTOTAL.N, "MainMenu" )
  363.  
  364.  
  365.  
  366. ;══════════════════════════BSC═══════════════════════════════════════
  367. ; PROCEDURE   : Icistat1Update
  368. ; AUTHOR      : Mark T. Houpt
  369. ; PARAMETERS  : N\A
  370. ; RETURNS     :
  371. ; Special Info: View Message and Catalog Procedure
  372. ;
  373. ;═══════════════════════════BSC════════════════════════════════════════
  374.  
  375. PROC ICISTAT1UPDATE(TBLS)
  376.     PRIVATE TBLS
  377.     WINM = 1
  378.     WinToClose = 1
  379.     DYNARRAY BUTTONS[]
  380.  
  381.     DYNARRAY BUTTONS[]
  382.     BUTTONS["Quit"]="QuitView()"
  383.     BUTTONS["System"]="SysInfoProc()"
  384.     BUTTONS["Print"]="DT_Rec_PRINT_CUSTOM()"
  385.     BUTTONS[">>"]="End"
  386.     BUTTONS[">"]= "PgDn"
  387.     BUTTONS["<"]= "PgUp"
  388.     BUTTONS["<<"]="Home"
  389.     BUTTONS["Find"]="Zoom"
  390.     BUTTONS["Sort"]= "OrderTable"
  391.     BUTTONS["Help"]= "HelpMeDlg(3)"
  392.  
  393.  
  394.     ;-- Wait with an Event Proc ---------------------------------
  395.     ECHO OFF
  396.     IF NRECORDS(TBLS) >= 1 THEN
  397.  
  398.         VIEW TBLS
  399.         SOURCETBLWIN = GETWINDOW()
  400.         WINDOW MOVE SOURCETBLWIN TO 10,-200
  401.         ;WINDOW HANDLE FORM TO SOURCEFRM
  402.         Pickform 1
  403.         FORMWINDOW=GETWINDOW()
  404.         MAXWINDOW(FORMWINDOW)
  405.         FIXMSGBOX(1)
  406.         BUTTON_OBJECTS(BUTTONS)        ;Setup the Buttons
  407.         SHOWPULLDOWN
  408.             "≡"       :  "Display Systems Information"             : "AppInfo",
  409.             "~T~able"    :  "Save Records and Return"                 : ""
  410.             SUBMENU
  411.                 "~F~irst"    :   " Moveto Leaselog Table"  : "FirstRec",
  412.                 "~L~ast"    :   " Moveto Leaselog Table"  : "LastRec",
  413.                 "~N~ext"    :   " Moveto Leaselog Table"  : "NextRec",
  414.                 "~P~revious"    :   " Moveto Leaselog Table"  : "PrevRec",
  415.                 "P~r~int"     :   " Print Current Record"  : "PrintRec",
  416.                 "Memo Window" :   "Move to Memo Window"    : "SelWin1",
  417.                 "Form ~W~indow" :   "Move to Form Window"    : "SelWin2",
  418.                 "Help"        : "Open Help Window"         : "HelpWind"
  419.  
  420.             ENDSUBMENU,
  421.             "~E~xit"      :  "Exit View Screen"                     : "QuitView"
  422.         ENDMENU
  423.         PROMPT ""
  424.         ECHO NORMAL
  425.         WAIT WORKSPACE
  426.             PROC "ViewWaitProc"
  427.             KEY "DOS" , "DOSBIG" , "F2" , "ZOOM" , "FIELDVIEW" , -108, "F4" , "F3", 16, "PgDn", "PgUp"
  428.             MESSAGE "MENUSELECT", "MAXIMIZE"
  429.             MOUSE "DOWN","AUTO"
  430.             trigger "ARRIVETABLE"
  431.         ENDWAIT
  432.         PROMPT ""
  433.         ECHO OFF
  434.     ELSE
  435.         OK.U("FILE EMPTY", "There are NO records//in the Table", TRUE,TRUE)
  436.         ECHO OFF
  437.     ENDIF
  438. ENDPROC
  439.  
  440. WRITELIB LIBNAME ICISTAT1UPDATE
  441. RELEASE PROCS ICISTAT1UPDATE
  442. LB_DISPLAYPROGRESS.U(PROCTOTAL.N, "Icistat1Update" )
  443.  
  444.  
  445. ;══════════════════════════BSC═══════════════════════════════════════
  446. ; PROCEDURE   : ViewWaitProc
  447. ; AUTHOR      : Mark T. Houpt
  448. ; PARAMETERS  : N\A
  449. ; RETURNS     :
  450. ; Special Info: View Message and Catalog Procedure WaitProc
  451. ;
  452. ;═══════════════════════════BSC════════════════════════════════════════
  453.  
  454. PROC VIEWWAITPROC(EVENTTYPE, EVENTRECORD, CYCLENUMBER)
  455.     SWITCH
  456.             ; Tony Goodman's GUIBUTON handling routine
  457.             ;
  458.         CASE EVENTRECORD["TYPE"] = "MOUSE":
  459.             WINHANDLE=WINDOWAT(EVENTRECORD["Row"],EVENTRECORD["Col"])
  460.             IF WINHANDLE >0 THEN
  461.                 WINDOW GETATTRIBUTES WINHANDLE TO WINATTRIB
  462.  
  463.                 IF MATCH(WINATTRIB["Title"],"..;METHOD") THEN
  464.                     GUIFRAME(WINHANDLE,"In")
  465.                     IF EVENTRECORD["Action"]="DOWN" THEN
  466.                         SLEEP 100
  467.                     ENDIF
  468.                     GUIFRAME(WINHANDLE,"Out")
  469.  
  470.                     EXECUTE WINATTRIB["Title"] ;Execute Button Method
  471.                     IF ISASSIGNED(RETVAL) AND
  472.                         (RETVAL=1 OR RETVAL=2 OR RETVAL=0) THEN
  473.                         RETURN RETVAL ;Return a 0 or 1 or 2
  474.                     ELSE
  475.                         RETURN 1 ;Return to Wait
  476.                     ENDIF
  477.                 ELSE
  478.  
  479.                     RETURN 0
  480.                 ENDIF
  481.             ENDIF
  482.             RETURN 0 ;Process the Mouse event normally
  483.             ;
  484.             ;
  485.         CASE EVENTTYPE = "DEPARTFIELD" :
  486.             RETURN 0
  487.         CASE EVENTTYPE = "ARRIVEROW" :
  488.             RETURN 0
  489.         CASE EVENTTYPE= "ARRIVETABLE" :
  490.             Moveto [FORUM]
  491.             RETURN 1
  492.         CASE EVENTRECORD["TYPE"] = "KEY":
  493.             SWITCH
  494.                 CASE EVENTRECORD["KEYCODE"] = ASC("F2"):
  495.                     QUITVIEW()
  496.                     RETURN 2
  497.                 CASE EVENTRECORD["KEYCODE"] = ASC("F3"):
  498.                     DOWNIMAGE
  499.                     RETURN 1
  500.                 CASE EVENTRECORD["KEYCODE"] = ASC("F4"):
  501.                     UPIMAGE
  502.                     RETURN 1
  503.                 CASE EVENTRECORD["KEYCODE"] = ASC("PgUp"):
  504.                     PGUP
  505.                     RETURN 1
  506.                 CASE EVENTRECORD["KEYCODE"] = ASC("PgDn"):
  507.                     PGDN
  508.                     RETURN 1
  509.  
  510.                 CASE EVENTRECORD["KEYCODE"] = ASC(16):
  511.                     POSTRECORD NOPOST LEAVELOCKED
  512.                     RETURN 1
  513.                 CASE EVENTRECORD["KEYCODE"] = -108:
  514.                     RETURN 0
  515.                 CASE EVENTRECORD["KEYCODE"] = ASC("FIELDVIEW"):
  516.                     RETURN 0
  517.                 OTHERWISE:
  518.                     RETURN 0
  519.             ENDSWITCH
  520.  
  521.         CASE EVENTRECORD["MESSAGE"] = "MENUSELECT" :
  522.             SWITCH
  523.                 CASE EVENTRECORD["MENUTAG"] = "AppInfo":
  524.                     SHOWABOUTBOX()
  525.                     RETURN 1
  526.                 CASE EVENTRECORD["MENUTAG"] = "QuitView":
  527.                     QUITVIEW()
  528.                     RETURN 2
  529.                 CASE EVENTRECORD["MENUTAG"] = "FirstRec":
  530.                     HOME
  531.                     RETURN 1
  532.                 CASE EVENTRECORD["MENUTAG"] = "LastRec":
  533.                     END
  534.                     RETURN 1
  535.                 CASE EVENTRECORD["MENUTAG"] = "PrevRec":
  536.                     PGUP
  537.                     RETURN 1
  538.                 CASE EVENTRECORD["MENUTAG"] = "NextRec":
  539.                     PGDN
  540.                     RETURN 1
  541.                 CASE EVENTRECORD["MENUTAG"] = "PrintRec":
  542.                     ; Kallista's Print Current Record
  543.                     DT_REC_PRINT_CUSTOM()
  544.                     RETURN 1
  545.                 CASE EVENTRECORD["MENUTAG"] = "SelWin1":
  546.                     Window Select MemoWindow
  547.                     RETURN 1
  548.                 CASE EVENTRECORD["MENUTAG"] = "SelWin2":
  549.                     Window Select FormWindow
  550.                     Moveto [FORUM]
  551.                     WinToClose = 2
  552.                     RETURN 1
  553.                 CASE EVENTRECORD["MENUTAG"] = "HelpWind":
  554.                     HelpMeDlg(3)
  555.                     RETURN 1
  556.                 OTHERWISE:
  557.                     RETURN 0
  558.             ENDSWITCH
  559.         CASE EVENTRECORD["MESSAGE"] = "MAXIMIZE" :
  560.             IF WINM = 1 THEN
  561.                 WINDOW RESIZE GETWINDOW() TO 21, 80
  562.                 WINDOW MOVE GETWINDOW() TO 1, 0
  563.                 SETWINDOW(GETWINDOW(),1)
  564.                 WINM = 2
  565.             ELSE
  566.                 WINDOW RESIZE GETWINDOW() TO 11, 80
  567.                 WINDOW MOVE GETWINDOW() TO 11, 0
  568.                 SETWINDOW(GETWINDOW(),1)
  569.                 WINM = 1
  570.             ENDIF
  571.             RETURN 1
  572.         OTHERWISE :
  573.             RETURN 0
  574.     ENDSWITCH
  575. ENDPROC
  576. WRITELIB LIBNAME VIEWWAITPROC
  577. RELEASE PROCS VIEWWAITPROC
  578. LB_DISPLAYPROGRESS.U(PROCTOTAL.N, "ViewWaitProc")
  579.  
  580.  
  581.  
  582. ;══════════════════════════BSC═══════════════════════════════════════
  583. ; PROCEDURE   : QuitView
  584. ; AUTHOR      : Mark T. Houpt
  585. ; PARAMETERS  : N\A
  586. ; RETURNS     :
  587. ; Special Info: Closes all open windows when exiting View
  588. ;               including ButtonBar
  589. ;═══════════════════════════BSC════════════════════════════════════════
  590.  
  591. PROC QUITVIEW()
  592.    IF ISFIELDVIEW() THEN
  593.       IF SEARCH("M", FIELDTYPE()) > 0 THEN
  594.          WINDOW
  595.          CLOSE ; cancel memo field changes
  596.       ELSE
  597.          DO_IT! ; end non-memo fieldview
  598.       ENDIF
  599.    ENDIF
  600.  
  601.    MESSAGE ""
  602.    ECHO OFF
  603.    WINDOW LIST TO ALLWINDOWS
  604.    SWITCH
  605.       CASE WinToClose = 1:
  606.          FOR WINDOWHANDLE FROM 1 TO ARRAYSIZE(ALLWINDOWS)-1
  607.             WINDOW SELECT ALLWINDOWS[windowhandle]
  608.             WINDOW
  609.             CLOSE
  610.          ENDFOR
  611.       CASE WinToClose = 2:
  612.          FOR WINDOWHANDLE FROM 1 TO ARRAYSIZE(ALLWINDOWS)-2
  613.             WINDOW SELECT ALLWINDOWS[windowhandle]
  614.             WINDOW
  615.             CLOSE
  616.          ENDFOR
  617.    ENDSWITCH
  618.    MESSAGE ""
  619.    WBSFILLSCREEN()
  620.    CLEARALL
  621.  
  622.    RETURN 2
  623. ENDPROC
  624. WRITELIB LIBNAME QUITVIEW
  625. RELEASE PROCS QUITVIEW
  626. LB_DISPLAYPROGRESS.U(PROCTOTAL.N, "QuitView")
  627.  
  628.  
  629.  
  630.  
  631.  
  632. PROC GETDIAG(NBR)
  633.     PRIVATE  NBR
  634.  
  635.     CLEARALL
  636.     SWITCH
  637.         CASE NBR = 1:
  638.             ANS=CISDIAG(1)
  639.             IF ANS = TRUE THEN
  640.                 QUERYFORMSG(1)
  641.             ELSE
  642.                 MESSAGE.U("Cancel", "Operation Canceled..." , TRUE, TRUE)
  643.                 SLEEP 2000
  644.                 CLEARMESSAGE.U()
  645.             ENDIF
  646.         CASE NBR = 2:
  647.             ANS=CISDIAG(2)
  648.             IF ANS = TRUE THEN
  649.                 QUERYFORCAT()
  650.             ELSE
  651.                 MESSAGE.U("Cancel", "Operation Canceled..." , TRUE, TRUE)
  652.                 SLEEP 2000
  653.                 CLEARMESSAGE.U()
  654.             ENDIF
  655.         CASE NBR = 3:
  656.             ANS=GetSectionsDLG.a()
  657.             IF ANS <> "Cancel" THEN
  658.                 QUERYFORMSG(2)
  659.             ELSE
  660.                 MESSAGE.U("Cancel", "Operation Canceled..." , TRUE, TRUE)
  661.                 SLEEP 2000
  662.                 CLEARMESSAGE.U()
  663.             ENDIF
  664.  
  665.         CASE NBR = 4:
  666.             ANS=GetSectionsDLG.a()
  667.             IF ANS <> "Cancel" THEN
  668.                 QUERYFORMSG(3)
  669.             ELSE
  670.                 MESSAGE.U("Cancel", "Operation Canceled..." , TRUE, TRUE)
  671.                 SLEEP 2000
  672.                 CLEARMESSAGE.U()
  673.             ENDIF
  674.  
  675.     ENDSWITCH
  676. ENDPROC
  677. WRITELIB LIBNAME GETDIAG
  678. RELEASE PROCS GETDIAG
  679. LB_DISPLAYPROGRESS.U(PROCTOTAL.N, "GetDiag" )
  680.  
  681.  
  682.  
  683.  
  684.  
  685. ;══════════════════════════BSC═══════════════════════════════════════
  686. ; PROCEDURE   : CisDiag
  687. ; AUTHOR      : Mark T. Houpt
  688. ; PARAMETERS  : N\A
  689. ; RETURNS     : RetVal
  690. ; Special Info: Build array of Forum Names for Diag Box
  691. ;               Uses Dickford Conn's Not_In.sc Code
  692. ;═══════════════════════════BSC════════════════════════════════════════
  693.  
  694. PROC CISDIAG(NBR)
  695.    PRIVATE  I,J,NBR,mtable1, mtable2, fname
  696.  
  697.    ; PaintPAL_Generated_Code_Begin(428099811)
  698.    rsp=YesNo.l("UPDATE", "Do you wish to Update your Forum List?" ,true,true)
  699.    IF rsp= TRUE THEN
  700.  
  701.       MESSAGE.U("FORUMS", "Gathering Forum Names/" + "Please Wait..." , TRUE, FALSE)
  702.       SWITCH
  703.          CASE NBR = 1:
  704.  
  705.             mtable1="Forum"
  706.             mtable2="Icistat"
  707.             fname = "FORUM"
  708.  
  709.  
  710.             MENU {Ask} SELECT mtable1
  711.             MOVETO FIELD fname
  712.             [] = "_c,COUNT=0"
  713.             MENU {Ask} SELECT mtable2
  714.             ;CTRLHOME CHECK                       ;Substitute THESE lines for the next one
  715.             ;MOVETO fname                         ;IF you want complete records
  716.             MOVETO FIELD fname CHECK
  717.             [] = "_c!"
  718.             DO_IT!
  719.          CASE NBR = 2:
  720.             mtable1="Forum"
  721.             mtable2="Idl"
  722.             fname = "FORUM"
  723.  
  724.  
  725.  
  726.             MENU {Ask} SELECT mtable1
  727.             MOVETO FIELD fname
  728.             [] = "_c,COUNT=0"
  729.             MENU {Ask} SELECT mtable2
  730.             ;CTRLHOME CHECK                       ;Substitute THESE lines for the next one
  731.             ;MOVETO fname                         ;IF you want complete records
  732.             MOVETO FIELD fname CHECK
  733.             [] = "_c!"
  734.             DO_IT!
  735.  
  736.       ENDSWITCH
  737.       IF nrecords("Answer") >=1 THEN
  738.          ADD "Answer" "Forum"
  739.       ENDIF
  740.    ENDIF
  741.  
  742.    VIEW "forum"
  743.    J = NRECORDS("forum")
  744.    ARRAY FORUMS[j+1]
  745.    FORUMS[1] = "ALL"
  746.    FOR I FROM 1 TO J
  747.       MOVETO RECORD(I)
  748.       FORUMS[i+1] = [forum]
  749.    ENDFOR
  750.    CLEARALL
  751.    CLEARMESSAGE.U()
  752.  
  753.    FORUM.A=1
  754.    SDATE=BLANKDATE()
  755.    EDATE=BLANKDATE()
  756.    PICKRB=2
  757.  
  758.  
  759.    SHOWDIALOG
  760.       "Forum Query Dialog"
  761.       @3,15 HEIGHT 18 WIDTH 49
  762.  
  763.       PAINTCANVAS FILL "Pick Forum" ATTRIBUTE 112 2,5,2,14
  764.  
  765.       PAINTCANVAS FILL "Date Range" ATTRIBUTE 112 5,31,5,40
  766.  
  767.       ; PaintPAL_Frame_Begin
  768.       FRAME SINGLE FROM 1,2 TO 3,18
  769.       PAINTCANVAS ATTRIBUTE 127 1,2,1,18
  770.       PAINTCANVAS ATTRIBUTE 127 1,2,3,2
  771.       PAINTCANVAS ATTRIBUTE 112 3,3,3,18
  772.       PAINTCANVAS ATTRIBUTE 112 1,18,3,18
  773.       ; PaintPAL_Frame_End
  774.  
  775.       ; PaintPAL_Frame_Begin
  776.       FRAME SINGLE FROM 4,27 TO 6,44
  777.       PAINTCANVAS ATTRIBUTE 127 4,27,4,44
  778.       PAINTCANVAS ATTRIBUTE 127 4,27,6,27
  779.       PAINTCANVAS ATTRIBUTE 112 6,28,6,44
  780.       PAINTCANVAS ATTRIBUTE 112 4,44,6,44
  781.       ; PaintPAL_Frame_End
  782.  
  783.       PICKARRAY @5,2 HEIGHT 9 WIDTH 17
  784.          COLUMNS 1
  785.          FORUMS
  786.          TAG "ForumTag"
  787.          TO FORUM.A
  788.  
  789.       RADIOBUTTONS @1,28 HEIGHT 2 WIDTH 12
  790.          "All",
  791.          "Todays"
  792.          TAG "RBtag"
  793.          TO PICKRB
  794.  
  795.       ACCEPT @8,30 WIDTH 12
  796.       "D"
  797.       TAG "SdateTag"
  798.       TO SDATE
  799.  
  800.       LABEL @7,30
  801.          "Start Date"
  802.          FOR "SdateTag"
  803.  
  804.       ACCEPT @10,30 WIDTH 12
  805.       "D"
  806.  
  807.       TAG "EdateTag"
  808.       TO EDATE
  809.  
  810.       LABEL @9,30
  811.          "End Date"
  812.          FOR "EdateTag"
  813.  
  814.  
  815.       PUSHBUTTON @13,24 WIDTH 8
  816.          "~O~k"
  817.          OK
  818.          DEFAULT
  819.          VALUE "Ok"
  820.          TAG "OkTag"
  821.          TO OKCANCEL
  822.  
  823.       PUSHBUTTON @13,33 WIDTH 12
  824.          "~C~ancel"
  825.          CANCEL
  826.          VALUE ""
  827.          TAG "CancelTag"
  828.          TO OKCANCEL
  829.  
  830.  
  831.    ENDDIALOG
  832.    RETURN RETVAL
  833.    ; PaintPAL_Generated_Code_End(428099811)
  834.  
  835. ENDPROC
  836. WRITELIB LIBNAME CISDIAG
  837. RELEASE PROCS CISDIAG
  838. LB_DISPLAYPROGRESS.U(PROCTOTAL.N, "CisDiag" )
  839.  
  840.  
  841.  
  842. ;══════════════════════════BSC═══════════════════════════════════════
  843. ; PROCEDURE   : QueryForMsg
  844. ; AUTHOR      : Mark T. Houpt
  845. ; PARAMETERS  : N\A
  846. ; RETURNS     :
  847. ; Special Info: Query for designated messages
  848. ;
  849. ;═══════════════════════════BSC════════════════════════════════════════
  850.  
  851. PROC QUERYFORMSG(nbr)
  852.    PRIVATE  nbr
  853.    if nbr <> 3 then
  854.        MESSAGE.U("MESSAGE QUERY", "Getting messages/" + "Please wait..." , TRUE, FALSE)
  855.    else
  856.        MESSAGE.U("MESSAGE QUERY", "Getting Subjects/" + "Please wait..." , TRUE, FALSE)
  857.    endif
  858.    DAT=""
  859.    SWITCH
  860.       CASE nbr=1:
  861.          FM=FORUMS[forum.a]
  862.       CASE Nbr = 2 or nbr = 3:
  863.          atf=search("|",ShowSectindex.a)
  864.          FM=substr(ShowSectindex.a,1,(atf-1))
  865.  
  866.          QUERY
  867.  
  868.  Icistat | Forum | Sect Number | Sect Name |
  869.          | ~fm   | Check       | ~ans      |
  870.  
  871.  Icistat |
  872.          |
  873.  
  874.          ENDQUERY
  875.          DO_IT!
  876.          VIEW "answer"
  877.          sect = [sect number]
  878.          CLEARALL
  879.  
  880.    ENDSWITCH
  881.  
  882.  
  883.  
  884.    QUERY
  885.  
  886.  Icistat | Start Msg | In Reply To | Msg Number | Forum  | Sect Number |
  887.          | Check     | Check       | Check      | Check  | Check       |
  888.  
  889.  Icistat | Sect Name |    Date     |  Time  | Subject | From Name |
  890.          | Check     | Check       | Check  | Check   | Check     |
  891.  
  892.  Icistat | From PPN | To Name | To PPN | Message |
  893.          | Check    | Check   | Check  | Check   |
  894.  
  895.    ENDQUERY
  896.  
  897.  
  898.  
  899.    IF SDATE = BLANKDATE() AND EDATE= BLANKDATE() THEN
  900.       IF PICKRB = 2 THEN
  901.          DAT = TODAY()
  902.       ENDIF
  903.    ENDIF
  904.    IF SDATE > BLANKDATE() AND EDATE = BLANKDATE() THEN
  905.       DAT = ">=" + STRVAL(SDATE)
  906.    ENDIF
  907.    IF SDATE= BLANKDATE() AND EDATE> BLANKDATE() THEN
  908.       DAT= "<=" + STRVAL(EDATE)
  909.    ENDIF
  910.    IF SDATE > BLANKDATE() AND EDATE > BLANKDATE() THEN
  911.       DAT = ">=" + STRVAL(SDATE) + ", <=" + STRVAL(EDATE)
  912.    ENDIF
  913.    SWITCH
  914.  
  915.       CASE nbr= 1:
  916.          IF FORUM.A > 1 THEN
  917.             MOVETO [Forum]
  918.             TYPEIN FM
  919.          ENDIF
  920.  
  921.       CASE nbr = 2 or nbr = 3:
  922.          IF FM > "" THEN
  923.             MOVETO [Forum]
  924.             TYPEIN FM
  925.          ENDIF
  926.          IF ans > "" THEN
  927.             MOVETO [SECT NUMBER]
  928.             TYPEIN sect
  929.          ENDIF
  930.    ENDSWITCH
  931.  
  932.  
  933.    IF DAT > "" OR PICKRB = 2 THEN
  934.       MOVETO [date]
  935.       TYPEIN DAT
  936.    ENDIF
  937.  
  938.    DO_IT!
  939.  
  940.    EMPTY "QueryMsg"
  941.    ADD "Answer" "QueryMsg"
  942.    CLEARMESSAGE.U()
  943.    CLEARALL
  944.    IF NRECORDS("Answer") > 0 THEN
  945.       goon1 = ""
  946.       if nbr = 3 then
  947.          goon1=GetSubject()
  948.       endif
  949.       if goon1 <> "Esc" then
  950.          OK.U("MESSAGE QUERY", "You May View Your Messages Now..." , TRUE, TRUE)
  951.       else
  952.          MESSAGE.U("Cancel", "Operation Canceled..." , TRUE, TRUE)
  953.          SLEEP 2000
  954.          CLEARMESSAGE.U()
  955.          SLEEP 2000
  956.       ENDIF
  957.    ELSE
  958.       OK.U("So Sorry", "No Records Found..." , TRUE,TRUE)
  959.       SLEEP 3000
  960.    ENDIF
  961.  
  962. ;   RELEASE VARS FORUM, FORUM.A,FORUMS, SDATE, EDATE, PICKRB,DAT, Forum.Y, SHOWSECT.Y, ANS, ATF, ALLSECT.Y, A, INDEX.A
  963. ENDPROC
  964. WRITELIB LIBNAME QUERYFORMSG
  965. RELEASE PROCS QUERYFORMSG
  966. LB_DISPLAYPROGRESS.U(PROCTOTAL.N, "QueryForMsg" )
  967.  
  968.  
  969.  
  970.  
  971. ;══════════════════════════BSC═══════════════════════════════════════
  972. ; PROCEDURE   : getSectionsDLG.a
  973. ; AUTHOR      : Mark T. Houpt
  974. ; COPYRIGHT   : (C) 1993 BAT-Systems Consulting
  975. ; PARAMETERS  :
  976. ;
  977. ; RETURNS     : Forun Section Name or Cancel
  978. ;
  979. ; Special Info: Adapted from Example D9 from Pdox Video Conference by
  980. ;               Kevin Smith
  981. ;═══════════════════════════BSC════════════════════════════════════════
  982.  
  983. PROC getSectionsDLG.a()
  984.    PRIVATE  mtable1,mtable2,mtable3,fname,fname2,rsp,helpme.a, forums.y
  985.  
  986.    rsp=YesNo.l("UPDATE", "Do you wish to Update your Forum List?" ,true,true)
  987.    IF rsp = TRUE THEN
  988.       MESSAGE.U("FORUMS", "Gathering Forum Names/" + "Please Wait..." , TRUE, FALSE)
  989.       mtable1="Forum"
  990.       mtable2="Icistat"
  991.       fname = "FORUM"
  992.  
  993.  
  994.       MENU {Ask} SELECT mtable1
  995.       MOVETO FIELD fname
  996.       [] = "_c,COUNT=0"
  997.       MENU {Ask} SELECT mtable2
  998.       ;CTRLHOME CHECK                       ;Substitute THESE lines for the next one
  999.       ;MOVETO fname                         ;IF you want complete records
  1000.       MOVETO FIELD fname CHECK
  1001.       [] = "_c!"
  1002.       DO_IT!
  1003.  
  1004.       IF Nrecords("answer") >= 1 THEN
  1005.          ADD "answer" "forum"
  1006.       ENDIF
  1007.       CLEARALL
  1008.       ClearMessage.u()
  1009.       MESSAGE.U("FORUMS", "Gathering Section Names/" + "Please Wait..." , TRUE, FALSE)
  1010.  
  1011.  
  1012.       mtable1="MsgDlg1"
  1013.       mtable2="Icistat"
  1014.       fname = "FORUM"
  1015.       Fname2 = "SECT NUMBER"
  1016.  
  1017.  
  1018.       MENU {Ask} SELECT mtable1
  1019.       MOVETO FIELD fname
  1020.       [] = "_c,COUNT=0"
  1021.       MENU {Ask} SELECT mtable2
  1022.       ;CTRLHOME CHECK                       ;Substitute THESE lines for the next one
  1023.       ;MOVETO fname                         ;IF you want complete records
  1024.       MOVETO FIELD fname CHECK
  1025.       MOVETO FIELD fname2 CHECK
  1026.       [] = "_c!"
  1027.       DO_IT!
  1028.       CLEARALL
  1029.       IF nrecords("Answer") >= 1 THEN
  1030.          ADD "Answer" "MsgDlg1"
  1031.       ENDIF
  1032.       QUERY
  1033.  
  1034.  Msgdlg1 |  Forum   | Sect Number |
  1035.          | Check _a | _b          |
  1036.  
  1037.  Icistat | Forum | Sect Number | Sect Name |
  1038.          | _a    | _b          | Check     |
  1039.  
  1040.  Icistat |
  1041.          |
  1042.  
  1043.       ENDQUERY
  1044.       DO_IT!
  1045.       IF Nrecords("answer") >= 1 THEN
  1046.          ADD "answer" "MsgDlg2"
  1047.       ENDIF
  1048.       CLEARALL
  1049.       CLEARMESSAGE.U()
  1050.    ENDIF
  1051.  
  1052.    VIEW "forum"
  1053.    VIEW "msgdlg2"
  1054.    DYNARRAY forums.y[]
  1055.    DYNARRAY AllSect.y []
  1056.    DYNARRAY ShowSect.y []
  1057.    SYSINFO TO sys.y
  1058.    MOVETO "forum"
  1059.    SCAN
  1060.       forums.y[ [forum] ] = [forum]
  1061.    ENDSCAN
  1062.    MOVETO "msgdlg2"
  1063.    SCAN
  1064.       AllSect.y[ [forum] + "|" + STRVAL([#]) ] = [sect name]
  1065.    ENDSCAN
  1066.    CLEARALL
  1067.  
  1068.    ; PaintPAL_Generated_Code_Begin(449009266)
  1069.  
  1070.    Sdate=BlankDate()
  1071.    Edate=BlankDate()
  1072.    OkCancel = "Cancel"
  1073.    PickRb=2
  1074.  
  1075.    SHOWDIALOG
  1076.       "Forums and Sections" ; H:\PALP\SECTION.DLG
  1077.       PROC "updateDLG.l"
  1078.       TRIGGER "OPEN" , "UPDATE"
  1079.  
  1080.       @2,4 HEIGHT 21 WIDTH 72
  1081.  
  1082.       ; PaintPAL_Frame_Begin
  1083.       FRAME SINGLE FROM 0,0 TO 18,69
  1084.       PAINTCANVAS ATTRIBUTE 127 0,0,0,69
  1085.       PAINTCANVAS ATTRIBUTE 112 18,0,18,69
  1086.       PAINTCANVAS ATTRIBUTE 127 0,0,18,0
  1087.       PAINTCANVAS ATTRIBUTE 112 0,69,18,69
  1088.       ; PaintPAL_Frame_End
  1089.  
  1090.       ; PaintPAL_Frame_Begin
  1091.       FRAME SINGLE FROM 2,1 TO 11,31
  1092.       PAINTCANVAS ATTRIBUTE 112 2,1,2,31
  1093.       PAINTCANVAS ATTRIBUTE 127 11,1,11,31
  1094.       PAINTCANVAS ATTRIBUTE 112 2,1,11,1
  1095.       PAINTCANVAS ATTRIBUTE 127 2,31,11,31
  1096.       ; PaintPAL_Frame_End
  1097.  
  1098.       ; PaintPAL_Frame_Begin
  1099.       FRAME SINGLE FROM 2,34 TO 11,66
  1100.       PAINTCANVAS ATTRIBUTE 112 2,34,2,66
  1101.       PAINTCANVAS ATTRIBUTE 127 11,34,11,66
  1102.       PAINTCANVAS ATTRIBUTE 112 2,34,11,34
  1103.       PAINTCANVAS ATTRIBUTE 127 2,66,11,66
  1104.       ; PaintPAL_Frame_End
  1105.  
  1106.       ; PaintPAL_Static_Text_Begin
  1107.       PAINTCANVAS FILL " " ATTRIBUTE 112 1,3,1,8
  1108.       @1,3
  1109.       ?? "Forums"
  1110.       PAINTCANVAS ATTRIBUTE 112 1,3,1,8
  1111.       ; PaintPAL_Static_Text_End
  1112.  
  1113.       ; PaintPAL_Static_Text_Begin
  1114.       PAINTCANVAS FILL " " ATTRIBUTE 112 1,36,1,43
  1115.       @1,36
  1116.       ?? "Sections"
  1117.       PAINTCANVAS ATTRIBUTE 112 1,36,1,43
  1118.       ; PaintPAL_Static_Text_End
  1119.  
  1120.       PICKDYNARRAY @3,2 HEIGHT 8 WIDTH 28
  1121.          Forums.y
  1122.          TAG "showTag"
  1123.          TO showIndex.a
  1124.  
  1125.       PICKDYNARRAY @3,35 HEIGHT 8 WIDTH 30
  1126.          ShowSect.y
  1127.          TAG "charTag"
  1128.          TO ShowSectIndex.a
  1129.  
  1130.       RADIOBUTTONS @13,2 HEIGHT 2 WIDTH 15
  1131.          "ALL Dates",
  1132.          "Today"
  1133.          TAG "RBtag"
  1134.          TO PickRB
  1135.  
  1136.       LABEL @12,2
  1137.          "Date Set"
  1138.          FOR "RBtag"
  1139.  
  1140.       ACCEPT @13,32 WIDTH 12
  1141.       "D"
  1142.       TAG "SdateTag"
  1143.       TO Sdate
  1144.  
  1145.       LABEL @13,19
  1146.          "Start Date:"
  1147.          FOR "SdateTag"
  1148.  
  1149.       ACCEPT @13,56 WIDTH 12
  1150.       "D"
  1151.       TAG "EdateTag"
  1152.       TO Edate
  1153.  
  1154.       LABEL @13,45
  1155.          "End Date:"
  1156.          FOR "EdateTag"
  1157.  
  1158.       PUSHBUTTON @16,13 WIDTH 10
  1159.          "~O~K"
  1160.          OK
  1161.          DEFAULT
  1162.          VALUE ""
  1163.          TAG "okTag"
  1164.          TO OKCancel
  1165.  
  1166.       PUSHBUTTON @16,30 WIDTH 8
  1167.          "~H~elp"
  1168.          VALUE HelpMeDLG(4)
  1169.          TAG "HelpTag"
  1170.          TO Helpme.a
  1171.  
  1172.       PUSHBUTTON @16,46 WIDTH 10
  1173.          "~C~ancel"
  1174.          CANCEL
  1175.          VALUE ""
  1176.          TAG "cancelTag"
  1177.          TO OKCancel
  1178.    ENDDIALOG
  1179.  
  1180.    ; PaintPAL_Generated_Code_End(449009266)
  1181.  
  1182.  
  1183.    IF RETVAL THEN
  1184.       RETURN ShowSect.y[ShowSectIndex.a]
  1185.    ELSE
  1186.       RETURN "Cancel"
  1187.    ENDIF
  1188.  
  1189.  
  1190. ENDPROC
  1191. WRITELIB LIBNAME GetSectionsDLG.a
  1192. RELEASE PROCS GetSectionsDLG.a
  1193. LB_DISPLAYPROGRESS.U(PROCTOTAL.N, "GetSectionsDLG" )
  1194.  
  1195.  
  1196.  
  1197.  
  1198. ;══════════════════════════BSC═══════════════════════════════════════
  1199. ; PROCEDURE   :
  1200. ;
  1201. ; Special Info: Adapted from Example D9 from Pdox Video Conference by
  1202. ;               Kevin Smith
  1203. ;═══════════════════════════BSC════════════════════════════════════════
  1204. PROC updateShowSect.u(showCode.a)
  1205.   DYNARRAY ShowSect.y []
  1206.   FOREACH index.a IN AllSect.y
  1207.     IF MATCH( index.a +"|", showcode.a +"|..") THEN
  1208.       ShowSect.y[index.a] = AllSect.y[index.a]
  1209.     ENDIF
  1210.   ENDFOREACH
  1211. ENDPROC
  1212. WRITELIB LIBNAME updateShowSect.u
  1213. RELEASE PROCS updateShowSect.u
  1214. LB_DISPLAYPROGRESS.U(PROCTOTAL.N, "UpdateShowSet.u" )
  1215.  
  1216.  
  1217.  
  1218.  
  1219. ;══════════════════════════BSC═══════════════════════════════════════
  1220. ; PROCEDURE   :
  1221. ; PARAMETERS  :
  1222. ;
  1223. ; Special Info: Adapted from Example D9 from Pdox Video Conference by
  1224. ;               Kevin Smith
  1225. ;═══════════════════════════BSC════════════════════════════════════════
  1226. PROC updateDLG.l (Trigger.a, Tag.a, EventValue.v, cbLabel.a)
  1227.  IF trigger.a = "OPEN" OR tag.a = "showTag" THEN
  1228.     updateShowSect.u(CONTROLVALUE("showTag"))
  1229.     ; Don't simply use EventValue.v because this could be an OPEN trigger.
  1230.     REFRESHCONTROL "charTag"
  1231.  ENDIF
  1232.  RETURN TRUE
  1233. ENDPROC
  1234. WRITELIB LIBNAME updateDLG.l
  1235. RELEASE PROCS updateDLG.l
  1236. LB_DISPLAYPROGRESS.U(PROCTOTAL.N, "UpdateDLG.l" )
  1237.  
  1238.  
  1239.  
  1240.  
  1241.  
  1242. ;══════════════════════════BSC═══════════════════════════════════════
  1243. ; PROCEDURE   : QueryForCAT
  1244. ; AUTHOR      : Mark T. Houpt
  1245. ; PARAMETERS  : N\A
  1246. ; RETURNS     :
  1247. ; Special Info: Query for designated Catalog Files
  1248. ;
  1249. ;═══════════════════════════BSC════════════════════════════════════════
  1250.  
  1251. PROC QUERYFORCAT()
  1252.     MESSAGE.U("CATALOG QUERY", "Getting catalogs/" + "Please wait..." , TRUE, FALSE)
  1253.     DAT=""
  1254.  
  1255.     {Ask} SELECT "Idl"
  1256.     CTRLHOME CHECK
  1257.  
  1258.  
  1259.     FM=FORUMS[forum.a]
  1260.  
  1261.     IF SDATE = BLANKDATE() AND EDATE= BLANKDATE() THEN
  1262.         IF PICKRB = 2 THEN
  1263.             DAT = TODAY()
  1264.         ENDIF
  1265.     ENDIF
  1266.     IF SDATE > BLANKDATE() AND EDATE = BLANKDATE() THEN
  1267.         DAT = ">=" + STRVAL(SDATE)
  1268.     ENDIF
  1269.     IF SDATE= BLANKDATE() AND EDATE> BLANKDATE() THEN
  1270.         DAT= "<=" + STRVAL(EDATE)
  1271.     ENDIF
  1272.     IF SDATE > BLANKDATE() AND EDATE > BLANKDATE() THEN
  1273.         DAT = ">=" + STRVAL(SDATE) + ", <=" + STRVAL(EDATE)
  1274.     ENDIF
  1275.  
  1276.  
  1277.     IF FORUM.A > 1 THEN
  1278.         MOVETO [Forum]
  1279.         TYPEIN FM
  1280.     ENDIF
  1281.  
  1282.     IF DAT > "" OR PICKRB = 2 THEN
  1283.         MOVETO [date]
  1284.         TYPEIN DAT
  1285.     ENDIF
  1286.  
  1287.     DO_IT!
  1288.  
  1289.     EMPTY "lastdl"
  1290.     ADD "Answer" "lastdl"
  1291.     CLEARMESSAGE.U()
  1292.     CLEARALL
  1293.     IF NRECORDS("Answer") > 0 THEN
  1294.  
  1295.         OK.U("MESSAGE QUERY", "You May View Your Messages Now..." , TRUE, TRUE)
  1296.         SLEEP 2000
  1297.     ELSE
  1298.         OK.U("So Sorry", "No Records Found..." , TRUE,TRUE)
  1299.         SLEEP 3000
  1300.     ENDIF
  1301.     ; clearmessage.u()
  1302.     RELEASE VARS FORUM, FORUM.A,FORUMS, SDATE, EDATE, PICKRB,DAT
  1303. ENDPROC
  1304. WRITELIB LIBNAME QUERYFORCAT
  1305. RELEASE PROCS QUERYFORCAT
  1306. LB_DISPLAYPROGRESS.U(PROCTOTAL.N, "QueryForCat" )
  1307.  
  1308.  
  1309.  
  1310. ;══════════════════════════BSC═══════════════════════════════════════
  1311. ; PROCEDURE   : MtHImportFile
  1312. ; AUTHOR      : Mark T. Houpt
  1313. ; PARAMETERS
  1314. ; Typ.n= 1 for MSG files 2 for Cat Files
  1315. ; nbr =1 for TapCis 2 for OzCIS
  1316. ; goon1 goon and mthgoon (as in go on) are branching params used
  1317. ; in proceedure below  all start at 1
  1318. ; RETURNS     :
  1319. ; Special Info: Import MSG and CAT file routine
  1320. ;
  1321. ;═══════════════════════════BSC════════════════════════════════════════
  1322.  
  1323. PROC MtHImportFile(Typ.n, NBR,goon1,goon,mthgoon)
  1324.    PRIVATE  NBR,GOON, Z, I, M, X, MthGoon, Cw.n, msg.a
  1325.  
  1326.    IF NOT ISASSIGNED(FILEHANDLE[3]) THEN
  1327.       start.m()
  1328.    ENDIF
  1329.    IF IsAssigned(FILEHANDLE[3]) THEN
  1330.       {Tools} {Info} {Inventory} {Files}
  1331.       SWITCH
  1332.          CASE NBR = 2 and typ.n= 1 :
  1333.             IF UPPER(FILEHANDLE[2]) <> UPPER(DIRECTORY()) THEN
  1334.                TYPEIN FILEHANDLE[2]+"*.mes"
  1335.                ENTER
  1336.             ELSE
  1337.                {*.mes}
  1338.                ENTER ; DO_IT!
  1339.             ENDIF
  1340.          CASE NBR = 1 and typ.n = 1:
  1341.             IF UPPER(FILEHANDLE[2]) <> UPPER(DIRECTORY()) THEN
  1342.                TYPEIN FILEHANDLE[2]+"*.msg"
  1343.                ENTER
  1344.             ELSE
  1345.                {*.msg}
  1346.                ENTER ;DO_IT!
  1347.             ENDIF
  1348.          CASE NBR = 2 and typ.n = 2:
  1349.             IF UPPER(FILEHANDLE[2]) <> UPPER(DIRECTORY()) THEN
  1350.                TYPEIN FILEHANDLE[2]+"*.l??"
  1351.                ENTER
  1352.             ELSE
  1353.                {*.l??}
  1354.                ENTER ; DO_IT!
  1355.             ENDIF
  1356.          CASE NBR = 1 and typ.n = 2:
  1357.             IF UPPER(FILEHANDLE[2]) <> UPPER(DIRECTORY()) THEN
  1358.                TYPEIN FILEHANDLE[2]+"*.Cat"
  1359.                ENTER
  1360.             ELSE
  1361.                {*.Cat}
  1362.                ENTER ;DO_IT!
  1363.             ENDIF
  1364.       ENDSWITCH
  1365.  
  1366.  
  1367.  
  1368.       CLEARALL
  1369.       IF NRECORDS("List") >= 1 THEN
  1370.          IF UPPER(FILEHANDLE[2]) <> UPPER(DIRECTORY()) THEN
  1371.             GOON1 = DlgGetFiles()
  1372.             IF GOON1 = TRUE THEN
  1373.                SWITCH
  1374.                   CASE typ.n = 1:
  1375.                      MtHProgressMsg.u(8, 18, "Processing Message File" , "" , 127, 113,0)
  1376.                   CASE typ.n = 2:
  1377.                      MtHProgressMsg.u(8, 18, "Processing Catalog File" , "" , 127, 113,0)
  1378.                ENDSWITCH
  1379.                FOREACH element IN MtHFileSelect
  1380.                   SWITCH
  1381.                      CASE typ.n = 1:
  1382.                         MtHProgressMsg.u(8, 18, "Processing Message File" , element, 127, 113, 1)
  1383.                      CASE typ.n = 2:
  1384.                         MtHProgressMsg.u(8, 18, "Processing Catalog File" , element, 127, 113, 1)
  1385.                   ENDSWITCH
  1386.  
  1387.                   SWITCH
  1388.                      CASE Typ.n = 1:
  1389.                         IF NBR = 2 THEN
  1390.                            RUN BIG NOREFRESH "Import Oz1msg " + FILEHANDLE[2] + " " + element + " " + FILEHANDLE[4]
  1391.                            GOON = 2
  1392.                         ELSE
  1393.                            RUN BIG NOREFRESH "Import Tc1msg " + FILEHANDLE[2] + " " + element + " " + FILEHANDLE[4]
  1394.                            GOON = 1
  1395.                         ENDIF
  1396.                      CASE typ.n = 2:
  1397.                         IF NBR = 2 THEN
  1398.                            RUN BIG NOREFRESH "Import Oz1cat " + FILEHANDLE[2] + " " + element + " " + FILEHANDLE[4]
  1399.                            GOON = 2
  1400.                         ELSE
  1401.                            RUN BIG NOREFRESH "Import Tc1cat " + FILEHANDLE[2] + " " + element + " " + FILEHANDLE[4]
  1402.                            GOON = 1
  1403.                         ENDIF
  1404.                   ENDSWITCH
  1405.                ENDFOREACH
  1406.  
  1407.                SWITCH
  1408.                   CASE typ.n = 1:
  1409.                      MtHProgressMsg.u(8, 18, "Processing Message File" , "" , 127, 113,-1)
  1410.                      MESSAGE.U("IMPORTING", "    Importing CIS Messages    //Please Wait..." ,TRUE,FALSE)
  1411.                   CASE typ.n = 2:
  1412.                      MtHProgressMsg.u(8, 18, "Processing Catalog File" , "" , 127, 113,-1)
  1413.                      MESSAGE.U("IMPORTING", "    Importing CIS Catalogs    //Please Wait..." ,TRUE,FALSE)
  1414.                ENDSWITCH
  1415.             ENDIF
  1416.          ELSE
  1417.             IF GOON1 = TRUE THEN
  1418.                SWITCH
  1419.                   CASE typ.n = 1:
  1420.                      IF NBR = 2 THEN
  1421.                         MESSAGE.U("IMPORTING", "    Importing CIS Messages    //Please Wait..." ,TRUE,FALSE)
  1422.                         RUN BIG NOREFRESH "Import Oz2msg"
  1423.                         GOON = 2
  1424.                      ELSE
  1425.                         MESSAGE.U("IMPORTING", "    Importing CIS Messages    //Please Wait..." ,TRUE,FALSE)
  1426.                         RUN BIG NOREFRESH "CISTATS > junk"
  1427.                         GOON = 1
  1428.                      ENDIF
  1429.                   CASE typ.n = 2:
  1430.                      IF NBR = 2 THEN
  1431.                         MESSAGE.U("IMPORTING", "    Importing CIS Catalog    //Please Wait..." ,TRUE,FALSE)
  1432.                         RUN BIG NOREFRESH "Import Oz2cat"
  1433.                         GOON = 2
  1434.                      ELSE
  1435.                         MESSAGE.U("IMPORTING", "    Importing CIS Catalogs    //Please Wait..." ,TRUE,FALSE)
  1436.                         RUN BIG NOREFRESH "DLS > junk"
  1437.                         GOON = 1
  1438.                      ENDIF
  1439.                ENDSWITCH
  1440.             ENDIF
  1441.          ENDIF
  1442.  
  1443.          CLEARALL
  1444.          ; ┌───────────────────────────────────────────────────────────────────┐
  1445.          ; │ OZCIS embeds carridge return line feed characters in the memo     │
  1446.          ; │ field at the start of the memo on the first line.  The following  │
  1447.          ; │ code reads opems the memo field and eliminates the first          │
  1448.          ; │ CR/LF character.                                                  │
  1449.          ; └───────────────────────────────────────────────────────────────────┘
  1450.  
  1451.          SWITCH
  1452.             CASE typ.n = 1:
  1453.                EMPTY "last"
  1454.                IF ISTABLE("Cistat") THEN
  1455.                   ADD "cistat" "Last"
  1456.                   DELETE "cistat"
  1457.                   IF NBR = 2 AND GOON <> 1 THEN
  1458.                      COEDIT "last"
  1459.                      Recs.n=NRECORDS("last")
  1460.                      CURSOR OFF
  1461.                      Clearmessage.u()
  1462.                      CW.n = 1
  1463.                      MSPROGRESSBAR.U(8,8,"Fixing OzCIS Message Entries","",127,123,116,0)
  1464.                      FOR z FROM 1 TO Recs.n
  1465.                         PCT=INT((z/Recs.n)*100)
  1466.                         msg.a = strval(z) + " of " + strval(Recs.n)
  1467.                         MSPROGRESSBAR.U(8,8,"Fixing OzCIS Messsage Entries",msg.a,127,123,116,PCT)
  1468.                         MOVETO RECORD(Z)
  1469.                         MOVETO [message]
  1470.                         FIELDVIEW
  1471.                         DEL
  1472.                         DO_IT!
  1473.                      ENDFOR
  1474.                      DO_IT!
  1475.                      MSPROGRESSBAR.U(8,8,"Fixing Message CAT Entries","",127,123,116,-1)
  1476.                      CURSOR NORMAL
  1477.                      CLEARALL
  1478.                      MESSAGE.U("IMPORTING", "    Updating Database    //Please Wait..." ,TRUE,FALSE)
  1479.                   ENDIF
  1480.                   ADD "Last" "icistat"
  1481.                   CLEARALL
  1482.                   CLEARMESSAGE.U()
  1483.                   OK.U("RECORDS IMPORTED", "You may view your most recent imported/" + "Forum Messages now..." , TRUE, TRUE)
  1484.                ELSE
  1485.                   CLEARALL
  1486.                   IF goon1 = FALSE THEN
  1487.                      MESSAGE.U("Cancel", "Operation Canceled..." , TRUE, TRUE)
  1488.                      SLEEP 2000
  1489.                      CLEARMESSAGE.U()
  1490.                   ELSE
  1491.                      OK.U("NOTICE","No files to import",TRUE,TRUE)
  1492.                   ENDIF
  1493.                ENDIF
  1494.  
  1495.             CASE TYP.N = 2:
  1496.  
  1497.                EMPTY "lastdl"
  1498.                IF ISTABLE("dl") THEN
  1499.                   ADD "dl" "Lastdl"
  1500.                   DELETE "dl"
  1501.                   IF NBR = 2 AND GOON <> 1 THEN
  1502.                      COEDIT "lastdl"
  1503.                      Recs.n=NRECORDS("lastdl")
  1504.                      CURSOR OFF
  1505.                      CW.n = 1
  1506.                      ClearMessage.u()
  1507.                      MSPROGRESSBAR.U(8,8,"Fixing OzCIS CAT Entries","",127,123,116,0)
  1508.  
  1509.                      FOR z FROM 1 TO Recs.n
  1510.                         PCT=INT((z/Recs.n)*100)
  1511.                         msg.a = strval(z) + " of " + strval(Recs.n)
  1512.                         MSPROGRESSBAR.U(8,8,"Fixing OzCIS CAT Entries",msg.a,127,123,116,PCT)
  1513.                         MOVETO RECORD(Z)
  1514.                         MOVETO [description]
  1515.                         FIELDVIEW
  1516.                         DEL
  1517.                         DO_IT!
  1518.                      ENDFOR
  1519.                      DO_IT!
  1520.                      MSPROGRESSBAR.U(8,8,"Fixing OzCIS CAT Entries","",127,123,116,-1)
  1521.                      CLEARALL
  1522.                      MESSAGE.U("IMPORTING", "    Updating Database    //Please Wait..." ,TRUE,FALSE)
  1523.                      CURSOR NORMAL
  1524.                   ENDIF
  1525.                   ADD "Lastdl" "idl"
  1526.                   CLEARALL
  1527.                   CLEARMESSAGE.U()
  1528.                   OK.U("RECORDS IMPORTED", "You may view your most recent imported/" + "Forum Catalogs now..." , TRUE, TRUE)
  1529.                ELSE
  1530.                   CLEARALL
  1531.                   OK.U("NOTICE","No files to import",TRUE,TRUE)
  1532.                ENDIF
  1533.          ENDSWITCH
  1534.       ELSE
  1535.          CLEARALL
  1536.          IF goon1 = FALSE THEN
  1537.             MESSAGE.U("Cancel", "Operation Canceled..." , TRUE, TRUE)
  1538.             SLEEP 2000
  1539.             CLEARMESSAGE.U()
  1540.          ELSE
  1541.             OK.U("NOTICE","No files to import",TRUE,TRUE)
  1542.          ENDIF
  1543.       ENDIF
  1544.    ELSE
  1545.       CLEARALL
  1546.       IF goon1 = FALSE THEN
  1547.           MESSAGE.U("Cancel", "Operation Canceled..." , TRUE, TRUE)
  1548.           SLEEP 2000
  1549.           CLEARMESSAGE.U()
  1550.       ELSE
  1551.          OK.U("NOTICE","No files to import",TRUE,TRUE)
  1552.       ENDIF
  1553.    ENDIF
  1554. ENDPROC
  1555. WRITELIB LIBNAME MtHImportFile
  1556. RELEASE PROCS MtHImportFile
  1557. LB_DISPLAYPROGRESS.U(PROCTOTAL.N, "MtHImportFile")
  1558.  
  1559.  
  1560.  
  1561.  
  1562. ;================================================
  1563. ;     System Menu and Associated Procedures
  1564. ;================================================
  1565. ; Desmond Nolan
  1566. ;================================================
  1567. PROC TIMEUPDATE(TRIGGERTYPE, TAGVALUE, EVENTVALUE, ELEMENTVALUE)
  1568.  
  1569.     REPAINTDIALOG
  1570.     RETURN TRUE
  1571.  
  1572. ENDPROC
  1573. WRITELIB LIBNAME TIMEUPDATE
  1574. RELEASE PROCS TIMEUPDATE
  1575. LB_DISPLAYPROGRESS.U(PROCTOTAL.N, "TimeUpdate" )
  1576.  
  1577.  
  1578. ;================================================
  1579. ; Desmond Nolan
  1580. ;================================================
  1581. ;==================================================
  1582.  
  1583. PROC TIMEDISPLAY()
  1584.     ; PaintPAL_Generated_Code_Begin(448642109)
  1585.  
  1586.     SHOWDIALOG "Current Time"  ; H:\PALP\CLOCK.DLG
  1587.        PROC "TimeUpdate"
  1588.           IDLE
  1589.  
  1590.        @6,28 HEIGHT 12 WIDTH 24
  1591.  
  1592.        PAINTCANVAS BORDER ATTRIBUTE 112 1,5,5,16
  1593.  
  1594.        ; PaintPAL_Frame_Begin
  1595.        FRAME SINGLE FROM 1,4 TO 5,17
  1596.        PAINTCANVAS ATTRIBUTE 127 1,4,1,17
  1597.        PAINTCANVAS ATTRIBUTE 112 5,4,5,17
  1598.        PAINTCANVAS ATTRIBUTE 127 1,4,5,4
  1599.        PAINTCANVAS ATTRIBUTE 112 1,17,5,17
  1600.        ; PaintPAL_Frame_End
  1601.  
  1602.        ; PaintPAL_Frame_Begin
  1603.        FRAME SINGLE FROM 0,1 TO 9,20
  1604.        PAINTCANVAS ATTRIBUTE 112 0,1,0,20
  1605.        PAINTCANVAS ATTRIBUTE 127 9,1,9,20
  1606.        PAINTCANVAS ATTRIBUTE 112 0,1,9,1
  1607.        PAINTCANVAS ATTRIBUTE 127 0,20,9,20
  1608.        ; PaintPAL_Frame_End
  1609.  
  1610.        @3,6
  1611.        ?? FORMAT("W10,AC",TIME())
  1612.  
  1613.        PAINTCANVAS ATTRIBUTE 15+16 2,6,4,15
  1614.  
  1615.        PUSHBUTTON @7,6 WIDTH 10
  1616.           "~O~k"
  1617.           OK
  1618.           DEFAULT
  1619.           VALUE "Accept"
  1620.           TAG "Yes"
  1621.           TO BUTTONVALUE
  1622.     ENDDIALOG
  1623.  
  1624.     ; PaintPAL_Generated_Code_End(448642109)
  1625.  
  1626. ENDPROC
  1627. WRITELIB LIBNAME TIMEDISPLAY
  1628. RELEASE PROCS TIMEDISPLAY
  1629. LB_DISPLAYPROGRESS.U(PROCTOTAL.N, "TimeDisplay" )
  1630.  
  1631.  
  1632.  
  1633. ;================================================
  1634. ; Desmond Nolan
  1635. ;================================================
  1636.  
  1637. ;==================================================
  1638. PROC SYSINFOPROC()
  1639.  
  1640.     PRIVATE  WINATTRS,
  1641.     SYSARRAY,
  1642.     WAITFORUSER,
  1643.     PDOXCNTRLMEMPOOLSIZE,
  1644.     PDOXCODEPOOLFREE,
  1645.     PDOXMEMLEFT,
  1646.     DISKSPACE,
  1647.     PDOXRUNTIME,
  1648.     PDOXVERSION
  1649.  
  1650.     DYNARRAY WINATTRS[]
  1651.     WINATTRS["TITLE"] = "System Information"
  1652.  
  1653.     SYSINFO TO SYSARRAY
  1654.  
  1655.     SWITCH
  1656.         CASE SYSARRAY["LANGUAGE"] = "001" :
  1657.             SYSARRAY["LANGUAGE"] = "English"
  1658.         CASE SYSARRAY["LANGUAGE"] = "033" :
  1659.             SYSARRAY["LANGUAGE"] = "French"
  1660.         CASE SYSARRAY["LANGUAGE"] = "034" :
  1661.             SYSARRAY["LANGUAGE"] = "Spanish"
  1662.         CASE SYSARRAY["LANGUAGE"] = "039" :
  1663.             SYSARRAY["LANGUAGE"] = "Italian"
  1664.         CASE SYSARRAY["LANGUAGE"] = "045" :
  1665.             SYSARRAY["LANGUAGE"] = "Danish"
  1666.         CASE SYSARRAY["LANGUAGE"] = "046" :
  1667.             SYSARRAY["LANGUAGE"] = "Swedish"
  1668.         CASE SYSARRAY["LANGUAGE"] = "049" :
  1669.             SYSARRAY["LANGUAGE"] = "German"
  1670.     ENDSWITCH
  1671.  
  1672.     PDOXCODEPOOLFREE = RMEMLEFT()
  1673.     PDOXCNTRLMEMPOOLSIZE = MEMLEFT()
  1674.     DISKSPACE = DRIVESPACE(SUBSTR(DIRECTORY(),1,1))
  1675.  
  1676.     SYSARRAY["PDOXRUNTIME"] = ISRUNTIME()
  1677.     SYSARRAY["PDOXVERSION"] = VERSION()
  1678.     SYSARRAY["EXTENDED"] = FORMAT("W12,AR,EC", SYSARRAY["EXTENDED"])
  1679.     SYSARRAY["EXPANDED"] = FORMAT("W12,AR,EC", SYSARRAY["EXPANDED"])
  1680.     SYSARRAY["DISKSPACE"] = FORMAT("W12,AR,EC",DISKSPACE)
  1681.     SYSARRAY["PDOXCODEPOOLFREE"] = FORMAT("W12,AR,EC",PDOXCODEPOOLFREE)
  1682.     SYSARRAY["PDOXCNTRLMEMPOOLSIZE"] = FORMAT("W12,AR,EC", PDOXCNTRLMEMPOOLSIZE)
  1683.  
  1684.     MESSAGE ""
  1685.  
  1686.     NHEIGHT=21
  1687.     NWIDTH=45
  1688.     TAGVALUE=""
  1689.     SHOWDIALOG
  1690.         "System"
  1691.         PROC "DiagProc"
  1692.         @2,19 HEIGHT NHEIGHT WIDTH NWIDTH
  1693.         FRAME SINGLE FROM 0,0 TO (NHEIGHT-1)-2,(NWIDTH-1)-2
  1694.         PAINTCANVAS ATTRIBUTE 112 ALL
  1695.         PAINTCANVAS ATTRIBUTE 127 0,0,0,(NWIDTH-1)-2
  1696.         PAINTCANVAS ATTRIBUTE 127 0,0,(NHEIGHT-1)-2,0
  1697.         @ 1,2 ?? "Extended memory  =  " , SYSARRAY["EXTENDED"]
  1698.         @ 2,2 ?? "Expanded memory  =  " , SYSARRAY["EXPANDED"]
  1699.         @ 3,2 ?? "Disk space free  =  " , SYSARRAY["DISKSPACE"]
  1700.         @ 4,2 ?? "Code pool free   =  " , SYSARRAY["PDOXCODEPOOLFREE"]
  1701.         @ 5,2 ?? "Central mem pool =  " , SYSARRAY["PDOXCNTRLMEMPOOLSIZE"]
  1702.  
  1703.         @ 7,2 ?? "Mouse present    =  " , SYSARRAY["MOUSE"]
  1704.         @ 8,2 ?? "Language         =  " , SYSARRAY["LANGUAGE"]
  1705.         @ 9,2 ?? "Autosave (secs)  =  " , SYSARRAY["AUTOSAVE"]
  1706.  
  1707.         @11,2 ?? "Paradox mode     =  " , SYSARRAY["UIMODE"]
  1708.         @12,2 ?? "Screen rows/cols =  " , SYSARRAY["SCREENHEIGHT"], "/" ,
  1709.         SYSARRAY["SCREENWIDTH"]
  1710.         @13,2 ?? "Paradox runtime  =  " , SYSARRAY["PDOXRUNTIME"]
  1711.         @14,2 ?? "Paradox version  =  " , SYSARRAY["PDOXVERSION"]
  1712.         @15,2 ?? "Paradox build    =  " , SYSARRAY["BUILD"]
  1713.  
  1714.         PUSHBUTTON @16,15 WIDTH 10
  1715.             "~O~k"
  1716.             OK
  1717.             DEFAULT
  1718.             VALUE "Yes"
  1719.             TAG "OkTag"
  1720.             TO BUTTONVALUE
  1721.  
  1722.     ENDDIALOG
  1723.  
  1724. ENDPROC
  1725. WRITELIB LIBNAME SYSINFOPROC
  1726. RELEASE PROCS SYSINFOPROC
  1727. LB_DISPLAYPROGRESS.U(PROCTOTAL.N, "SysInfoProc" )
  1728.  
  1729. ;================================================
  1730. ; Desmond Nolan
  1731. ;================================================
  1732.  
  1733. PROC DIAGPROC(TRIGGERTYPE,TAGVELUE,EVENTVALUE,ELEMENTVALUE)
  1734.     IF TRIGGERTYPE= "OPEN" AND TAGVALUE ="OKTag" THEN
  1735.         WINDOW HANDLE DIALOG TO HDLDIALOG
  1736.         DYNARRAY DIAGATTR[]
  1737.         DIAGATTR["HASFRAME"]=FALSE
  1738.         DIAGATTR["HASSHADOW"]=FALSE
  1739.         WINDOW SETATTRIBUTES HDLDIALOG FROM DIAGATTR
  1740.     ENDIF
  1741. ENDPROC
  1742. WRITELIB LIBNAME DIAGPROC
  1743. RELEASE PROCS DIAGPROC
  1744. LB_DISPLAYPROGRESS.U(PROCTOTAL.N, "DiagProc" )
  1745.  
  1746.  
  1747.  
  1748. ; ---------------------------------------------------------------------------
  1749. ; Proc name : MaxWindow()
  1750. ; Purpose   : Maximizes and removes frame/shadow from a named window
  1751. ; Returns   : *None*
  1752. ; Comments  : Used primarily for main Invoice form
  1753. ; Adapted from Greaves and Lindsay Paradox 4 Developer's Guide
  1754. ; ---------------------------------------------------------------------------
  1755. PROC MAXWINDOW(WINHANDLE)
  1756.     PRIVATE  PROCWIN
  1757.  
  1758.     IF ISWINDOW(WINHANDLE)
  1759.         THEN
  1760.         DYNARRAY PROCWIN[]
  1761.         PROCWIN["HASSHADOW"] = FALSE
  1762.         PROCWIN["HASFRAME"] = FALSE
  1763.         PROCWIN["CANMOVE"] = FALSE
  1764.         PROCWIN["CANRESIZE"] = FALSE
  1765.         PROCWIN["CANCLOSE"] = FALSE
  1766.         PROCWIN["MAXIMIZED"] = FALSE
  1767.         WINDOW SETATTRIBUTES WINHANDLE FROM PROCWIN
  1768.     ENDIF
  1769.     RETURN ISWINDOW(WINHANDLE)
  1770. ENDPROC
  1771.  
  1772. WRITELIB LIBNAME MAXWINDOW
  1773. RELEASE PROCS MAXWINDOW
  1774. LB_DISPLAYPROGRESS.U(PROCTOTAL.N, "MaxWindow" )
  1775.  
  1776.  
  1777.  
  1778. PROC SETWINDOW(WINHANDLE,NBR)
  1779.     PRIVATE  SPROCWIN,NBR
  1780.  
  1781.     IF ISWINDOW(WINHANDLE)
  1782.         THEN
  1783.         DYNARRAY SPROCWIN[]
  1784.         SPROCWIN["HASSHADOW"] = FALSE
  1785.         IF NBR=1 THEN
  1786.             SPROCWIN["HASFRAME"] = TRUE
  1787.         ELSE
  1788.             SPROCWIN["HASFRAME"] = FALSE
  1789.         ENDIF
  1790.         SPROCWIN["CANMOVE"] = FALSE
  1791.         SPROCWIN["CANRESIZE"] = FALSE
  1792.         SPROCWIN["CANCLOSE"] = FALSE
  1793.         WINDOW SETATTRIBUTES WINHANDLE FROM SPROCWIN
  1794.     ENDIF
  1795.     RETURN ISWINDOW(WINHANDLE)
  1796. ENDPROC
  1797. WRITELIB LIBNAME SETWINDOW
  1798. RELEASE PROCS SETWINDOW
  1799. LB_DISPLAYPROGRESS.U(PROCTOTAL.N, "SetWindow" )
  1800.  
  1801.  
  1802.  
  1803. PROC TAMEMEMOBOX(WINHANDLE)
  1804.     PRIVATE  MEMOATTS
  1805.  
  1806.     ECHO OFF
  1807.     IF ISWINDOW(WINHANDLE)
  1808.         THEN
  1809.         DYNARRAY MEMOATTS[]
  1810.         MEMOATTS["TITLE"] = "MESSAGE"
  1811.         MEMOATTS["ORIGINROW"] = 11
  1812.         MEMOATTS["ORIGINCOL"] = 1
  1813.         MEMOATTS["HEIGHT"] = 13
  1814.         MEMOATTS["WIDTH"] = 78
  1815.         MEMOATTS["CANCLOSE"] = FALSE
  1816.         MEMOATTS["HASFRAME"] = TRUE
  1817.  
  1818.         WINDOW SETATTRIBUTES WINHANDLE FROM MEMOATTS
  1819.     ENDIF
  1820.     ECHO NORMAL
  1821.     WHILE TRUE
  1822.         WAIT FIELD
  1823.         UNTIL "F2" , "F7" , "Esc" , "DOS" , "DOSBIG"
  1824.         SWITCH
  1825.             CASE RETVAL = "F2" :
  1826.                 DO_IT!
  1827.                 IF UPPER(TABLE())="IDL" THEN
  1828.                     MOVETO [Library]
  1829.                 ELSE
  1830.                     MOVETO [Start Msg]
  1831.                 ENDIF
  1832.                 QUITLOOP
  1833.             CASE RETVAL = "F7" :
  1834.                 DO_IT!
  1835.                 IF UPPER(TABLE())="IDL" THEN
  1836.                     MOVETO [Library]
  1837.                 ELSE
  1838.                     PGDN
  1839.                     MOVETO [Message]
  1840.                 ENDIF
  1841.                 QUITLOOP
  1842.             CASE RETVAL = "Esc":
  1843.                 CANCELEDIT
  1844.                 IF UPPER(TABLE())="IDL" THEN
  1845.                     MOVETO [Library]
  1846.                 ELSE
  1847.                     MOVETO [Start Msg]
  1848.                 ENDIF
  1849.                 QUITLOOP
  1850.             OTHERWISE :
  1851.                 LOOP
  1852.         ENDSWITCH
  1853.         RETURN TRUE
  1854.     ENDWHILE
  1855.  
  1856. ENDPROC
  1857. WRITELIB LIBNAME TAMEMEMOBOX
  1858. RELEASE PROCS TAMEMENOBOX
  1859. LB_DISPLAYPROGRESS.U(PROCTOTAL.N, "TameMemoBox" )
  1860.  
  1861.  
  1862.  
  1863.  
  1864.  
  1865. PROC LEAVEAPP(ALL)
  1866.  
  1867.     IF ALL = 1 THEN
  1868.  
  1869.         IF ISRUNTIME() THEN
  1870.             OK.U("NOTICE","You may not enter Paradox//when using the Run-Time Version//Please choose Quit to Exit Program...",TRUE,TRUE)
  1871.             SPLASHSCR(2)
  1872.         ELSE
  1873.             IF SYSMODE() <> "Main"
  1874.                 THEN DO_IT!
  1875.             ENDIF
  1876.             APPINTRO()
  1877.             ALTSPACE {Desktop} {Empty}
  1878.             RESET
  1879.             QUIT "Back in Paradox Now..."
  1880.         ENDIF
  1881.     ELSE
  1882.         IF SYSMODE() <> "Main"
  1883.             THEN DO_IT!
  1884.         ENDIF
  1885.         APPINTRO()
  1886.         ALTSPACE {Desktop} {Empty}
  1887.         RESET
  1888.         EXIT
  1889.     ENDIF
  1890. ENDPROC
  1891. WRITELIB LIBNAME LEAVEAPP
  1892. RELEASE PROCS LEAVEAPP
  1893. LB_DISPLAYPROGRESS.U(PROCTOTAL.N, "LeaveApp" )
  1894.  
  1895.  
  1896.  
  1897.  
  1898.  
  1899. PROC APPINTRO()
  1900.     PRIVATE  WINDOWATTS
  1901.  
  1902.     DYNARRAY WINDOWATTS[]
  1903.     WINDOWATTS["HASFRAME"] = FALSE
  1904.     WINDOWATTS["ORIGINROW"] = 6
  1905.     WINDOWATTS["ORIGINCOL"] = 17
  1906.     WINDOWATTS["FLOATING"] = TRUE
  1907.     WINDOWATTS["HEIGHT"] = 10
  1908.     WINDOWATTS["WIDTH"] = 45
  1909.     WINDOWATTS["HASSHADOW"] = FALSE
  1910.  
  1911.     WINDOW
  1912.     CREATE ATTRIBUTES WINDOWATTS TO INFOWINDOW
  1913.  
  1914.     CURSOR OFF
  1915.     CANVAS OFF
  1916.  
  1917.     @1,0 ?? FORMAT("W44,AC", "CIS ACTIVITY CENTER" )
  1918.     @3,0 ?? FORMAT("W44,AC", "Mouse & Squirrel Software" )
  1919.     @4,0 ?? FORMAT("W44,AC", "Copyright @1992-93" )
  1920.     @7,0 ?? FORMAT("W44,D2,AC", TODAY())
  1921.     @8,12 ?? "Leaving Application..."
  1922.  
  1923.     PAINTCANVAS ATTRIBUTE 15+16 0,0,9,44
  1924.     STYLE ATTRIBUTE 15+16+128
  1925.     ?? "..."
  1926.     STYLE
  1927.     CANVAS ON
  1928.     SLEEP 2000
  1929. ENDPROC
  1930.  
  1931. WRITELIB LIBNAME APPINTRO
  1932. RELEASE PROCS APPINTRO
  1933. LB_DISPLAYPROGRESS.U(PROCTOTAL.N, "AppIntro" )
  1934.  
  1935.  
  1936.  
  1937.  
  1938. ;══════════════════════════BSC═══════════════════════════════════════
  1939. ; PROCEDURE   : GetRsp
  1940. ; AUTHOR      : Mark T. Houpt
  1941. ; COPYRIGHT   : (C) 1993 BAT-Systems Consulting
  1942. ; PARAMETERS  : N\A
  1943. ; RETURNS     : N\A
  1944. ;
  1945. ; Special Info: Diag to get printer output location
  1946. ;
  1947. ;═══════════════════════════BSC════════════════════════════════════════
  1948. PROC GETRSP()
  1949.     PRIVATE  NHEIGHT, NWIDTH
  1950.  
  1951.     RSP = ""
  1952.     NHEIGHT=12
  1953.     NWIDTH=21
  1954.  
  1955.     ; PaintPAL_Generated_Code_Begin(447826908)
  1956.  
  1957.     SHOWDIALOG "Print To"
  1958.         @6,29 HEIGHT NHEIGHT WIDTH NWIDTH
  1959.  
  1960.         ; PaintPAL_Frame_Begin
  1961.         FRAME SINGLE FROM 0,1 TO 9,17
  1962.         PAINTCANVAS ATTRIBUTE 112 0,1,0,17
  1963.         PAINTCANVAS ATTRIBUTE 127 9,1,9,17
  1964.         PAINTCANVAS ATTRIBUTE 112 0,1,9,1
  1965.         PAINTCANVAS ATTRIBUTE 127 0,17,9,17
  1966.         ; PaintPAL_Frame_End
  1967.  
  1968.         PUSHBUTTON @1,4 WIDTH 11
  1969.             "~S~creen"
  1970.             OK
  1971.             VALUE "S"
  1972.             TAG "Stag"
  1973.             TO RSP
  1974.  
  1975.         PUSHBUTTON @4,4 WIDTH 11
  1976.             "~P~rinter"
  1977.             OK
  1978.             DEFAULT
  1979.             VALUE "P"
  1980.             TAG "Ptag"
  1981.             TO RSP
  1982.  
  1983.         PUSHBUTTON @7,4 WIDTH 11
  1984.             "~C~ancel"
  1985.             CANCEL
  1986.             VALUE ""
  1987.             TAG "Cancel"
  1988.             TO CANCELTAG
  1989.     ENDDIALOG
  1990.  
  1991.     ; PaintPAL_Generated_Code_End(447826908)
  1992.  
  1993.     IF ISBLANK (RSP)
  1994.         THEN
  1995.         RETURNED = 1
  1996.         RETURN RSP
  1997.     ELSE
  1998.         RETURNED = 2
  1999.         RETURN RSP
  2000.     ENDIF
  2001. ENDPROC
  2002. WRITELIB LIBNAME GETRSP
  2003. RELEASE PROCS GETRSP
  2004. LB_DISPLAYPROGRESS.U(PROCTOTAL.N, "GetRsp" )
  2005.  
  2006.  
  2007.  
  2008. ;══════════════════════════BSC═══════════════════════════════════════
  2009. ; PROCEDURE   : GetPort
  2010. ; AUTHOR      : Mark T. Houpt
  2011. ; COPYRIGHT   : (C) 1993 BAT-Systems Consulting
  2012. ; PARAMETERS  : N\A
  2013. ; RETURNS     : N\A
  2014. ;
  2015. ; Special Info: Diag to get printer Port and Type info
  2016. ;
  2017. ;═══════════════════════════BSC════════════════════════════════════════
  2018. PROC GETPORT()
  2019.     PRIVATE OKCANCEL,PRINTVAL
  2020.     ; Portions adapted from PrintM.zip in PDODOS libs by John Nelson
  2021.     ; JRN Enterprise
  2022.  
  2023.     ; PaintPAL_Generated_Code_Begin(447839100)
  2024.  
  2025.     OKCANCEL=""
  2026.     PRINTERTYPE=BLANKNUM()
  2027.     PRINTVAL= BLANKNUM()
  2028.  
  2029.     SHOWDIALOG
  2030.         "Select Printer Type and Port" ; C:\CIS\RPT.DLG
  2031.         @6,16 HEIGHT 12 WIDTH 47
  2032.  
  2033.         ; PaintPAL_Frame_Begin
  2034.         FRAME SINGLE FROM 0,1 TO 9,43
  2035.         PAINTCANVAS ATTRIBUTE 127 0,1,0,43
  2036.         PAINTCANVAS ATTRIBUTE 112 9,1,9,43
  2037.         PAINTCANVAS ATTRIBUTE 127 0,1,9,1
  2038.         PAINTCANVAS ATTRIBUTE 112 0,43,9,43
  2039.         ; PaintPAL_Frame_End
  2040.  
  2041.         ; PaintPAL_Frame_Begin
  2042.         FRAME SINGLE FROM 1,20 TO 5,41
  2043.         PAINTCANVAS ATTRIBUTE 112 1,20,1,41
  2044.         PAINTCANVAS ATTRIBUTE 127 5,20,5,41
  2045.         PAINTCANVAS ATTRIBUTE 112 1,20,5,20
  2046.         PAINTCANVAS ATTRIBUTE 127 1,41,5,41
  2047.         ; PaintPAL_Frame_End
  2048.  
  2049.         ; PaintPAL_Frame_Begin
  2050.         FRAME SINGLE FROM 1,3 TO 8,16
  2051.         PAINTCANVAS ATTRIBUTE 112 1,3,1,16
  2052.         PAINTCANVAS ATTRIBUTE 127 8,3,8,16
  2053.         PAINTCANVAS ATTRIBUTE 112 1,3,8,3
  2054.         PAINTCANVAS ATTRIBUTE 127 1,16,8,16
  2055.         ; PaintPAL_Frame_End
  2056.  
  2057.         RADIOBUTTONS @3,5 HEIGHT 5 WIDTH 10
  2058.             "Lpt1",
  2059.             "Lpt2",
  2060.             "Lpt3",
  2061.             "Com1",
  2062.             "Com2"
  2063.             TAG "PrinttoTag"
  2064.             TO PRINTVAL
  2065.  
  2066.         LABEL @2,5
  2067.             "Print To"
  2068.             FOR "PrinttoTag"
  2069.  
  2070.         RADIOBUTTONS @3,22 HEIGHT 2 WIDTH 19
  2071.             "Dot Matrix",
  2072.             "Laser Printer"
  2073.             TAG "PrinterTag"
  2074.             TO PRINTTYPE
  2075.  
  2076.         LABEL @2,22
  2077.             "Printer Type"
  2078.             FOR "PrinterTag"
  2079.  
  2080.         PUSHBUTTON @7,21 WIDTH 6
  2081.             "~O~k"
  2082.             OK
  2083.             DEFAULT
  2084.             VALUE "OK"
  2085.             TAG "OKTag"
  2086.             TO OKCANCEL
  2087.  
  2088.         PUSHBUTTON @7,31 WIDTH 10
  2089.             "~C~ancel"
  2090.             CANCEL
  2091.             VALUE "Cancel"
  2092.             TAG "CancelTag"
  2093.             TO OKCANCEL
  2094.     ENDDIALOG
  2095.  
  2096.     ; PaintPAL_Generated_Code_End(447839100)
  2097.  
  2098.     IF OKCANCEL > "" THEN
  2099.         RETURNED = 2
  2100.         SWITCH
  2101.             CASE PRINTVAL = 1:
  2102.                 PRTV="LPT1"
  2103.             CASE PRINTVAL = 2:
  2104.                 PRTV="LPT2"
  2105.             CASE PRINTVAL = 3:
  2106.                 PRTV="LPT3"
  2107.             CASE PRINTVAL = 4:
  2108.                 PRTV="COM1"
  2109.             CASE PRINTVAL = 5:
  2110.                 PRTV="COM2"
  2111.         ENDSWITCH
  2112.         RETURN COPIES
  2113.     ELSE
  2114.         RETURNED = 1
  2115.         RETURN PRINTERTYPE
  2116.     ENDIF
  2117. ENDPROC
  2118. WRITELIB LIBNAME GETPORT
  2119. RELEASE VARS GETPORT
  2120. LB_DISPLAYPROGRESS.U(PROCTOTAL.N, "GetPort")
  2121.  
  2122.  
  2123.  
  2124. PROC GETRPT(NBR)
  2125.     PRIVATE  NBR,RSP,PRINTERTYPE,PRTV,RETURNED
  2126.     ; Portions adapted from PrintM.zip in PDODOS libs by John Nelson
  2127.     ; JRN Enterprise
  2128.  
  2129.     RSP=GETRSP()
  2130.     IF UPPER(RSP) = "S" OR UPPER(RSP) = "P" THEN
  2131.         SWITCH
  2132.             CASE NBR = 1:
  2133.                 SWITCH
  2134.                     CASE UPPER(RSP) = "P":
  2135.                         PRINTERTYPE=GETPORT()
  2136.                         IF RETURNED <> 1 THEN
  2137.                             IF PRTV <> "LPT1" THEN
  2138.                                 IF PRINTTYPE = 1 THEN
  2139.                                     ;select the report and change the settings
  2140.                                     MENU {Report} {Change} {Icistat} {1}
  2141.                                     ENTER
  2142.                                     {Setting} {Setup} {Custom} SELECT PRTV
  2143.                                     ENTER
  2144.                                     ENTER
  2145.                                     DO_IT!
  2146.                                 ELSE
  2147.                                     ;select the report and change the settings
  2148.                                     MENU {Report} {Change} {Icistat} {2}
  2149.                                     ENTER
  2150.                                     {Setting} {Setup} {Custom} SELECT PRTV
  2151.                                     ENTER
  2152.                                     ENTER
  2153.                                     DO_IT!
  2154.                                 ENDIF
  2155.                             ENDIF
  2156.                             MESSAGE.U("REPORT", "Printing Report//Please Wait..." ,TRUE,FALSE)
  2157.                             IF PRINTTYPE=1 THEN
  2158.                                 REPORT "Icistat" 1
  2159.                             ELSE
  2160.                                 REPORT "Icistat" 2
  2161.                             ENDIF
  2162.                             CLEARMESSAGE.U()
  2163.                         ENDIF
  2164.                     CASE UPPER(RSP) = "S":
  2165.                         MESSAGE.U("REPORT", "Printing Report to Screen//Please Wait..." ,TRUE,FALSE)
  2166.                         {Report} {Output} {Icistat} {1} {File} {CisMsg} {Replace}
  2167.                         CLEARALL
  2168.                         CLEARMESSAGE.U()
  2169.                         VIEWFILEEDITORWIN("CisMsg.rpt" ;" file name to edit
  2170.                         ,"MESSAGE REPORT" ; title of window
  2171.                         ,"FileEditWaitMenu" ;procedure to call on startup
  2172.                         ,"" ;procedure on close
  2173.                         ,"FileEditWaitMenuHandler") ;procedure to evaluate menu choices
  2174.                 ENDSWITCH
  2175.             CASE NBR = 2:
  2176.                 SWITCH
  2177.                     CASE UPPER(RSP) = "P":
  2178.                         PRINTERTYPE=GETPORT()
  2179.                         IF RETURNED <> 1 THEN
  2180.                             IF PRTV <> "LPT1" THEN
  2181.                                 IF PRINTTYPE = 1 THEN
  2182.                                     ;select the report and change the settings
  2183.                                     MENU {Report} {Change} {Last} {1}
  2184.                                     ENTER
  2185.                                     {Setting} {Setup} {Custom} SELECT PRTV
  2186.                                     ENTER
  2187.                                     ENTER
  2188.                                     DO_IT!
  2189.                                 ELSE
  2190.                                     ;select the report and change the settings
  2191.                                     MENU {Report} {Change} {Last} {2}
  2192.                                     ENTER
  2193.                                     {Setting} {Setup} {Custom} SELECT PRTV
  2194.                                     ENTER
  2195.                                     ENTER
  2196.                                     DO_IT!
  2197.                                 ENDIF
  2198.                             ENDIF
  2199.                             MESSAGE.U("REPORT", "Printing Report//Please Wait..." ,TRUE,FALSE)
  2200.                             IF PRINTTYPE=1 THEN
  2201.                                 REPORT "Last" 1
  2202.                             ELSE
  2203.                                 REPORT "Last" 2
  2204.                             ENDIF
  2205.                             CLEARMESSAGE.U()
  2206.                         ENDIF
  2207.                     CASE UPPER(RSP) = "S":
  2208.                         MESSAGE.U("REPORT", "Printing Report to Screen//Please Wait..." ,TRUE,FALSE)
  2209.                         {Report} {Output} {last} {1} {File} {CisMsg} {Replace}
  2210.                         CLEARALL
  2211.                         CLEARMESSAGE.U()
  2212.                         VIEWFILEEDITORWIN("CisMsg.rpt" ;"Readme.txt" file name to edit
  2213.                         ,"MESSAGE REPORT" ;title of window
  2214.                         ,"FileEditWaitMenu" ;procedure to call on startup
  2215.                         ,"" ;procedure on close
  2216.                         ,"FileEditWaitMenuHandler") ;procedure to evaluate menu choices
  2217.                 ENDSWITCH
  2218.             CASE NBR = 3:
  2219.                 SWITCH
  2220.                     CASE UPPER(RSP) = "P":
  2221.                         PRINTERTYPE=GETPORT()
  2222.                         IF RETURNED <> 1 THEN
  2223.                             IF PRTV <> "LPT1" THEN
  2224.                                 IF PRINTTYPE = 1 THEN
  2225.                                     ;select the report and change the settings
  2226.                                     MENU {Report} {Change} {QueryMsg} {1}
  2227.                                     ENTER
  2228.                                     {Setting} {Setup} {Custom} SELECT PRTV
  2229.                                     ENTER
  2230.                                     ENTER
  2231.                                     DO_IT!
  2232.                                 ELSE
  2233.                                     ;select the report and change the settings
  2234.                                     MENU {Report} {Change} {QueryMsg} {2}
  2235.                                     ENTER
  2236.                                     {Setting} {Setup} {Custom} SELECT PRTV
  2237.                                     ENTER
  2238.                                     ENTER
  2239.                                     DO_IT!
  2240.                                 ENDIF
  2241.                             ENDIF
  2242.                             MESSAGE.U("REPORT", "Printing Report//Please Wait..." ,TRUE,FALSE)
  2243.                             IF PRINTTYPE=1 THEN
  2244.                                 REPORT "QueryMsg" 1
  2245.                             ELSE
  2246.                                 REPORT "QueryMsg" 2
  2247.                             ENDIF
  2248.                             CLEARMESSAGE.U()
  2249.                         ENDIF
  2250.                     CASE UPPER(RSP) = "S":
  2251.                         MESSAGE.U("REPORT", "Printing Report to Screen//Please Wait..." ,TRUE,FALSE)
  2252.                         {Report} {Output} {QueryMsg} {1} {File} {CisMsg} {Replace}
  2253.                         CLEARALL
  2254.                         CLEARMESSAGE.U()
  2255.                         VIEWFILEEDITORWIN("CisMsg.rpt" ;"Readme.txt" file name to edit
  2256.                         ,"MESSAGE REPORT" ;title of window
  2257.                         ,"FileEditWaitMenu" ;procedure to call on startup
  2258.                         ,"" ;procedure on close
  2259.                         ,"FileEditWaitMenuHandler") ;procedure to evaluate menu choices
  2260.                 ENDSWITCH
  2261.             CASE NBR = 4:
  2262.                 SWITCH
  2263.                     CASE UPPER(RSP) = "P":
  2264.                         PRINTERTYPE=GETPORT()
  2265.                         IF RETURNED <> 1 THEN
  2266.                             IF PRTV <> "LPT1" THEN
  2267.                                 IF PRINTTYPE = 1 THEN
  2268.                                     ;select the report and change the settings
  2269.                                     MENU {Report} {Change} {Idl} {1}
  2270.                                     ENTER
  2271.                                     {Setting} {Setup} {Custom} SELECT PRTV
  2272.                                     ENTER
  2273.                                     ENTER
  2274.                                     DO_IT!
  2275.                                 ELSE
  2276.                                     ;select the report and change the settings
  2277.                                     MENU {Report} {Change} {Idl} {2}
  2278.                                     ENTER
  2279.                                     {Setting} {Setup} {Custom} SELECT PRTV
  2280.                                     ENTER
  2281.                                     ENTER
  2282.                                     DO_IT!
  2283.                                 ENDIF
  2284.                             ENDIF
  2285.                             MESSAGE.U("REPORT", "Printing Report//Please Wait..." ,TRUE,FALSE)
  2286.                             IF PRINTTYPE=1 THEN
  2287.                                 REPORT "Idl" 1
  2288.                             ELSE
  2289.                                 REPORT "Idl" 2
  2290.                             ENDIF
  2291.                             CLEARMESSAGE.U()
  2292.                         ENDIF
  2293.                     CASE UPPER(RSP) = "S":
  2294.                         MESSAGE.U("REPORT", "Printing Report to Screen//Please Wait..." ,TRUE,FALSE)
  2295.                         {Report} {Output} {Idl} {1} {File} {CisCat} {Replace}
  2296.                         CLEARALL
  2297.                         CLEARMESSAGE.U()
  2298.  
  2299.                         VIEWFILEEDITORWIN("CisCat.rpt" ;"Readme.txt" file name to edit
  2300.                         ,"MESSAGE REPORT" ;title of window
  2301.                         ,"FileEditWaitMenu" ;procedure to call on startup
  2302.                         ,"" ;procedure on close
  2303.                         ,"FileEditWaitMenuHandler") ;procedure to evaluate menu choices
  2304.                 ENDSWITCH
  2305.         ENDSWITCH
  2306.         CLEARALL
  2307.     ENDIF
  2308. ENDPROC
  2309. WRITELIB LIBNAME GETRPT
  2310. RELEASE PROCS GETRPT
  2311. LB_DISPLAYPROGRESS.U(PROCTOTAL.N, "GetRpt" )
  2312.  
  2313.  
  2314.  
  2315. ; This Scirpt is a collection of proceedures for using the Paradox 4.0 File
  2316. ; editor like you would Readme com in your script
  2317. ;
  2318. ;             Written 1/25/93
  2319. ;             Brian Bushay
  2320. ;             1715 Emerson Ave N
  2321. ;             Minneapolis, MN 55411
  2322. ;             CIS 76711,516
  2323. ;
  2324. ;
  2325. ; More great work by Brian
  2326. ; ================================================================================
  2327. ; ==============================ViewFileEditorWin()  ==============================
  2328. ; ================================================================================
  2329. ; View a report in the Editor Window
  2330. PROC VIEWFILEEDITORWIN(FILE.A ;file name to edit
  2331.     ;the followning paramaters can be blank strings ""
  2332.     ,TITLE.A ;title of window
  2333.     ,STARTUP.PROC ;procedure to call on startup
  2334.     ,CLOSE.PROC ;procedure on close
  2335.     ,MENUHANDLER.PROC) ;procedure to evaluate menu choices
  2336.     PRIVATE  RET,PROCNAME.A
  2337.  
  2338.     ,STARTKEYS.Y ;keyboard state on entry to this Proc
  2339.     ,WIND.Y ;dynarray holding attributes of editor Window
  2340.     ,EDITOR.W ;holds handle of editor window
  2341.     ,SCROLL.Y ;dynarray to hold state of Scroll lock
  2342.     PROCNAME.A = "ViewFileEditorWin"
  2343.     ;Echo Off
  2344.     EDITOR
  2345.     OPEN FILE.A ;open the edit session
  2346.     WINDOW LIST TO WINS
  2347.     ALLWIN=ARRAYSIZE(WINS)
  2348.     WINDOW SELECT WINS[allwin]
  2349.     EDITOR.W = GETWINDOW() ;try to get editor window handle
  2350.     WINDOW SELECT EDITOR.W
  2351.     WINDOW GETATTRIBUTES EDITOR.W TO WIND.Y
  2352.     ;check if the handle GetWindow() returned is for an editor session
  2353.     IF SEARCH(UPPER(FILE.A),UPPER(WIND.Y["Title"])) = 0 THEN ;oops not the correct handle
  2354.         EDITOR.W = GETEDITORWINDOW(WIND.Y,FILE.A)
  2355.     ENDIF
  2356.     IF ISASSIGNED(WINDOWLBL.A) THEN ;If a custom window title is to be used
  2357.         WIND.Y["Title"] = WINDOWLBL.A
  2358.     ELSE
  2359.         WIND.Y["Title"] = "" ;Use no title for window
  2360.     ENDIF
  2361.     {Options} {WordWrap} {Clear} ;remove default WordWrap behavior
  2362.     GETKEYBOARDSTATE TO STARTKEYS.Y ;record current keyboard state
  2363.     DYNARRAY SCROLL.Y[] ;create dynarray
  2364.     SCROLL.Y["Scroll Lock"]= TRUE ;start out with scroll lock on
  2365.     SETKEYBOARDSTATE FROM SCROLL.Y
  2366.     WINDOW SETATTRIBUTES EDITOR.W FROM WIND.Y ;sets new window title
  2367.     WINMAX ;Maximize editor window
  2368.     ;IF you don't want the following default Prompt then use the startUp.proc
  2369.     ;paramater to set up a custom prompt
  2370.     PROMPT "*Print to Screen*    │"
  2371.     MESSAGE ""
  2372.     IF NOT ISBLANK(STARTUP.PROC) THEN ;use startup proceedure to set custom
  2373.         EXECPROC STARTUP.PROC ;showPullDown and Promts ect
  2374.     ENDIF
  2375.     ECHO NORMAL
  2376.     IF NIMAGES() > 0 THEN ;images on workspace use WAIT
  2377.         WAIT WORKSPACE
  2378.             PROC "FileEditWaitHandler"
  2379.             ; no event argument traps for all events except Idle
  2380.         ENDWAIT
  2381.     ELSE ;No images so use GetEvent
  2382.         WHILE TRUE
  2383.             GETEVENT TO EVENT.Y
  2384.             FILEEDITWAITHANDLER("EVENT",EVENT.Y,0) ;event Processing procedure
  2385.             SWITCH ;can be shared with WAIT
  2386.                 CASE RETVAL = 0 :
  2387.                     EXECEVENT EVENT.Y
  2388.                 CASE RETVAL = 1 :
  2389.                     ;do nothing
  2390.                 OTHERWISE:
  2391.                     QUITLOOP
  2392.             ENDSWITCH
  2393.         ENDWHILE
  2394.     ENDIF
  2395.     ECHO OFF
  2396.     SETKEYBOARDSTATE FROM STARTKEYS.Y ;Restore keyboard state on entry
  2397.     WINDOW SELECT EDITOR.W ;make sure the editor window is current
  2398.     WINDOW
  2399.     CLOSE
  2400.  
  2401.     IF NOT ISBLANK(CLOSE.PROC) THEN ;Use close.proc to reset menus and Prompt if desired
  2402.         EXECPROC CLOSE.PROC ;ect
  2403.     ENDIF
  2404.  
  2405. ENDPROC
  2406.  
  2407. WRITELIB LIBNAME VIEWFILEEDITORWIN
  2408. RELEASE PROCS VIEWFILEEDITORWIN
  2409. LB_DISPLAYPROGRESS.U(PROCTOTAL.N, "ViewFileEditorWin" )
  2410.  
  2411.  
  2412. ; ================================================================================
  2413. ; ==============================GetEditorWindow()  ==============================
  2414. ; ================================================================================
  2415. ; Gets a window handle of an Edit session even when floating window is on workspace
  2416. ; Thanks to Dan Paolini for this technique
  2417.  
  2418. PROC GETEDITORWINDOW(WINATT.Y ;dynarray to hold window attributes
  2419.     ,FILENM.A);file name same as window title
  2420.     PRIVATE  RET,PROCNAME.A,
  2421.     WINDOWS.R,
  2422.     ELEMENTS.N,
  2423.     CNTR
  2424.  
  2425.     PROCNAME.A = "GetEditorWindow"
  2426.     WINDOW LIST TO WINDOWS.R ;Get a list of all Windows
  2427.     ELEMENTS.N = ARRAYSIZE(WINDOWS.R)
  2428.     FOR CNTR FROM 1 TO ELEMENTS.N
  2429.         WINDOW SELECT WINDOWS.R[cntr]
  2430.         WINDOW GETATTRIBUTES WINDOWS.R[cntr] TO WINATT.Y
  2431.         IF SEARCH(UPPER(FILE.A),UPPER(WIND.Y["Title"])) >0 THEN
  2432.             QUITLOOP
  2433.         ENDIF
  2434.     ENDFOR
  2435.     RETURN IIF(CNTR>ELEMENTS.N,0,WINDOWS.R[cntr]) ; 0 no Editor Window found
  2436. ENDPROC
  2437. WRITELIB LIBNAME GETEDITORWINDOW
  2438. RELEASE PROCS GETEDITORWINDOW
  2439. LB_DISPLAYPROGRESS.U(PROCTOTAL.N, "GetEditorWindow" )
  2440.  
  2441. ; ================================================================================
  2442. ; ==============================FileEditWaitHandler()  ==============================
  2443. ; ================================================================================
  2444. ; Handles keys passed from Wait sessions on the Editor
  2445.  
  2446. PROC FILEEDITWAITHANDLER(TRIGER.A,EVENT.Y,CYCLE.N)
  2447.     PRIVATE  RET,PROCNAME.A
  2448.  
  2449.     PROCNAME.A = "FileEditWaitHandler"
  2450.     RET = 1
  2451.     SWITCH
  2452.         CASE TRIGER.A <> "EVENT":
  2453.             SWITCH
  2454.                 CASE TRIGER.A = "ARRIVEWINDOW" :
  2455.                     ;if a different window is selected the Editor window will be closed
  2456.                     IF GETWINDOW() <> EDITOR.W AND GETWINDOW() <> 0 THEN
  2457.                         RET = 2 ;2 leaves Wait
  2458.                     ENDIF
  2459.                 OTHERWISE:
  2460.             ENDSWITCH
  2461.         CASE EVENT.Y["Type"] = "MOUSE" :
  2462.             RET = 0
  2463.         CASE EVENT.Y["Type"] = "KEY" :
  2464.             SWITCH
  2465.                 CASE EVENT.Y["KEYCODE"] =-24 :
  2466.                     ;don't allow ;to DOS keys
  2467.                 CASE EVENT.Y["KEYCODE"] =15 :
  2468.                     ;don't allow
  2469.                     ;Internal windows like Zoom have handle of 0
  2470.                     ;so no more key strokes excluded if handle is 0
  2471.                 CASE GETWINDOW() = 0 :
  2472.                     RET = 0
  2473.                 CASE
  2474.                     EVENT.Y["KEYCODE"] <= -71 AND ;Home, Up, PgUp, Left
  2475.                     EVENT.Y["KEYCODE"] >= -81 : RET = 0 ;End,Down,PgDn,Right
  2476.                 CASE
  2477.                     EVENT.Y["KEYCODE"] <= -115 AND ;Ctrl/Left Ctrl/Right
  2478.                     EVENT.Y["KEYCODE"] >= -119 : RET = 0 ;Ctrl/Home Ctrl/End Ctrl/PgDn
  2479.                 CASE EVENT.Y["KEYCODE"] = -132 :
  2480.                     RET = 0 ;Ctrl/PgUp
  2481.                 CASE EVENT.Y["KEYCODE"] = 26 :
  2482.                     RET = 0 ;Zoom
  2483.                 CASE EVENT.Y["KEYCODE"] = -44 :
  2484.                     RET = 0 ;ZoomNext
  2485.                 CASE EVENT.Y["KEYCODE"] = 27 :
  2486.                     RET = 2 ;Esc
  2487.                 OTHERWISE: RET = 1 ;All other keys do not process
  2488.             ENDSWITCH
  2489.         CASE EVENT.Y["Type"] = "MESSAGE" :
  2490.             SWITCH
  2491.                 CASE
  2492.                     EVENT.Y["Message"] = "MENUSELECT"
  2493.                     OR EVENT.Y["Message"] = "MENUKEY" :
  2494.                     ;check if a Proc is defined to handle Menu selections
  2495.                     IF NOT ISBLANK(MENUHANDLER.PROC) THEN ;use menu handling proceed ure if
  2496.                         EXECPROC MENUHANDLER.PROC ;it is defined
  2497.                         RET = RETVAL
  2498.                     ENDIF
  2499.                 CASE EVENT.Y["Message"] = "CLOSE" :
  2500.                     RETURN 2 ;user moused close Bar
  2501.                 OTHERWISE: RET = 0
  2502.             ENDSWITCH
  2503.         OTHERWISE:
  2504.             MESSAGE EVENT.Y["type"] ;just incase anything slips by
  2505.     ENDSWITCH
  2506.     RETURN RET
  2507. ENDPROC
  2508. WRITELIB LIBNAME FILEEDITWAITHANDLER
  2509. RELEASE PROCS FILEEDITWAITHANDLER
  2510. LB_DISPLAYPROGRESS.U(PROCTOTAL.N, "FileditWaitHandler" )
  2511.  
  2512. ; ================================================================================
  2513. ; ==============================FileEditWaitMenu()  ==============================
  2514. ; ================================================================================
  2515. ; Menu to put up for File Edit Session
  2516. PROC FILEEDITWAITMENU()
  2517.     PRIVATE  RET,PROCNAME.A
  2518.  
  2519.     PROCNAME.A = "FileEditWaitMenu"
  2520.     ;puts up single choice show Pulldown
  2521.     SHOWPULLDOWN
  2522.         "Quit"          : "Leave File Viewer "                : "27",
  2523.         "Scroll Toggel" : "Toggel Scroll Lock"                : "Scroll"
  2524.     ENDMENU
  2525. ENDPROC
  2526.  
  2527. WRITELIB LIBNAME FILEEDITWAITMENU
  2528. RELEASE PROCS FILEEDITWAITMENU
  2529. LB_DISPLAYPROGRESS.U(PROCTOTAL.N, "FileEditWaitMenu" )
  2530.  
  2531. ; ================================================================================
  2532. ; ==============================FileEditWaitMenuHandler()  ==============================
  2533. ; ================================================================================
  2534. ; Proceedure to handle Menu selections while in File editor
  2535. PROC FILEEDITWAITMENUHANDLER()
  2536.     PRIVATE  RET,PROCNAME.A
  2537.  
  2538.     PROCNAME.A = "FileEditWaitMenuHandler"
  2539.     SWITCH
  2540.         CASE EVENT.Y["MENUTAG"] = "27" :
  2541.             RET = 2 ;leave the wait
  2542.         CASE EVENT.Y["MENUTAG"] = "Scroll" :
  2543.             GETKEYBOARDSTATE TO SCROLL.Y ;make sure information is current
  2544.             SCROLL.Y["Scroll Lock"]= (NOT SCROLL.Y["Scroll Lock"])
  2545.             SETKEYBOARDSTATE FROM SCROLL.Y
  2546.             RET = 1
  2547.         OTHERWISE: RET = 1 ;Do nothhing
  2548.     ENDSWITCH
  2549.     RETURN RET
  2550. ENDPROC
  2551. WRITELIB LIBNAME FILEEDITWAITMENUHANDLER
  2552. RELEASE PROCS FILEEDITWAITMENUHANDLER
  2553. LB_DISPLAYPROGRESS.U(PROCTOTAL.N, "FileEditWaitMenuHandler" )
  2554.  
  2555.  
  2556. PROC VIEWDOC()
  2557.     VIEWFILEEDITORWIN("CisMsg.txt" ;" file name to edit
  2558.     ,"Program Documentation" ; title of window
  2559.     ,"FileEditWaitMenu" ;procedure to call on startup
  2560.     ,"" ;procedure on close
  2561.     ,"FileEditWaitMenuHandler") ;procedure to evaluate menu choices
  2562. ENDPROC
  2563. WRITELIB LIBNAME VIEWDOC
  2564. RELEASE PROCS VIEWDOC
  2565. LB_DISPLAYPROGRESS.U(PROCTOTAL.N, "ViewDoc" )
  2566.  
  2567.  
  2568. ; -------------------------------------------------------------------
  2569. ; DesktopPlus for Paradox, version 4.0
  2570. ; PRINTREC.SC
  2571. ; Copyright 1988-92 Kallista, Inc. - All Rights Reserved
  2572. ; used with expressed consent for CISMSG Application
  2573. ; -------------------------------------------------------------------
  2574. PROC DT_REC_PRINT_CUSTOM()
  2575.    PRIVATE  FIELDVALUES, ; fixed array to hold the record's values
  2576.             WASFORMVIEW, ; Were we in formview when the routine startred
  2577.             CURRENTWINDOW,;
  2578.             CURRENTTABLE, ;
  2579.             REPORTSPEC ;
  2580.    Window Select FormWindow
  2581.    Moveto [FORUM]
  2582.    WinToClose = 2
  2583.    MODE=SYSMODE()
  2584.    TBL=TABLE()
  2585.    FRM=FORM()
  2586.    BU=2
  2587.    IF MODE="View" OR MODE= "Main" THEN
  2588.       ECHO OFF
  2589.       MESSAGE "Checking printer status"
  2590.       IF NOT PRINTERSTATUS() THEN
  2591.          EXITMESSAGE = "Print not found"
  2592.          RETURN TRUE
  2593.       ENDIF
  2594.  
  2595.       IF IMAGETYPE() <> "Display" THEN
  2596.          EXITMESSAGE = "Not in a display image"
  2597.          RETURN TRUE
  2598.       ENDIF
  2599.  
  2600.       IF NIMAGERECORDS() = 0 THEN
  2601.          EXITMESSAGE = "Current image is empty"
  2602.          RETURN TRUE
  2603.       ENDIF
  2604.  
  2605.       MESSAGE "Building report list"
  2606.  
  2607.       CURRENTTABLE = TBL
  2608.       DYNARRAY REPORTLIST[]
  2609.  
  2610.       ; Build a list of the available report specs
  2611.       DO_IT!
  2612.       MENU {Report} {Change} SELECT CURRENTTABLE
  2613.       CURRENTCHOICE = MENUCHOICE()
  2614.       WHILE TRUE
  2615.          REPINDEX = MENUCHOICE()
  2616.          REPORTLIST[RepIndex] = REPINDEX
  2617.          ENTER
  2618.          REPORTLIST[RepIndex] = REPORTLIST[RepIndex] + " - " + MENUCHOICE()
  2619.          ESC
  2620.          DOWN
  2621.          IF MENUCHOICE() = CURRENTCHOICE THEN
  2622.             QUITLOOP
  2623.          ENDIF
  2624.          CURRENTCHOICE = MENUCHOICE()
  2625.       ENDWHILE
  2626.       MENU ESC
  2627.  
  2628.       ; Hide the Paradox menu
  2629.  
  2630.  
  2631.       MESSAGE ""
  2632.       REPORTSPEC = ""
  2633.       EXITCONTROL = FALSE
  2634.  
  2635.       SHOWDIALOG
  2636.          "Custom Reports" @6,20 HEIGHT 14 WIDTH 40
  2637.  
  2638.          PICKDYNARRAY @1,1 HEIGHT 8 WIDTH 36
  2639.             REPORTLIST
  2640.             TAG "ReportList" TO REPORTSPEC
  2641.  
  2642.          PUSHBUTTON @10,7 WIDTH 10
  2643.             "~O~K" OK DEFAULT VALUE TRUE
  2644.             TAG "Accept" TO EXITCONTROL
  2645.  
  2646.          PUSHBUTTON @10,22 WIDTH 10
  2647.             "~C~ancel" CANCEL VALUE FALSE
  2648.             TAG "Cancel" TO EXITCONTROL
  2649.  
  2650.       ENDDIALOG
  2651.  
  2652.       IF NOT EXITCONTROL THEN
  2653.          FIXMSGBOX(2)
  2654.          RETURN FALSE
  2655.       ENDIF
  2656.  
  2657.       MESSAGE "Printing current record"
  2658.  
  2659. ;       Check whether form or table view
  2660.  
  2661. ;         if isformview() then
  2662. ;            formkey
  2663. ;            WasFormView = True
  2664. ;         else
  2665. ;            WasFormView = false
  2666. ;         endif
  2667.       CTRLHOME
  2668.       MOVETO TBL
  2669.       COPYTOARRAY FIELDVALUES
  2670.  
  2671.       ; Query table to get the current record
  2672.       DTTBL="MH"
  2673.       CREATE DTTBL+"$temp$" LIKE CURRENTTABLE
  2674.       VIEW DTTBL+"$temp$"
  2675.       COEDITKEY
  2676.       COPYFROMARRAY FIELDVALUES
  2677.       DO_IT!
  2678.       CLEARIMAGE
  2679.  
  2680.       COPYREPORT CURRENTTABLE REPORTSPEC DTTBL+"$temp$" REPORTSPEC
  2681.       REPORT DTTBL+"$temp$" REPORTSPEC
  2682.  
  2683.       ; Cleanup
  2684.  
  2685.       DELETE DTTBL+"$temp$"
  2686.       MESSAGE ""
  2687.       MOVETO TBL
  2688.       PICKFORM FRM
  2689.       FIXMSGBOX(2)
  2690.       RETURN TRUE
  2691.    ELSE
  2692.       FIXMSGBOX(2)
  2693.       RETURN FALSE
  2694.    ENDIF
  2695.    ECHO NORMAL
  2696. ENDPROC
  2697.  
  2698. WRITELIB LIBNAME DT_REC_PRINT_CUSTOM
  2699. RELEASE PROCS DT_REC_PRINT_CUSTOM
  2700. LB_DISPLAYPROGRESS.U(PROCTOTAL.N, "DT_REC_PRINT_CUSTOM")
  2701.  
  2702.  
  2703. ;══════════════════════════BSC═══════════════════════════════════════
  2704. ; PROCEDURE   :start.m
  2705. ; AUTHOR      : Mark T. Houpt
  2706. ; COPYRIGHT   : (C) 1993 BAT-Systems Consulting
  2707. ; PARAMETERS  : N\A
  2708. ; RETURNS     : N\A
  2709. ;
  2710. ; Special Info: Diag to get CIS Prog Type and directory
  2711. ;
  2712. ;═══════════════════════════BSC════════════════════════════════════════
  2713.  
  2714. PROC START.m()
  2715.     Private HelpMe.a, ProgType, FileDir, dlg.h
  2716.      ; PaintPAL_Generated_Code_Begin(448222737)
  2717.  
  2718.     IF NOT ISASSIGNED(FILEHANDLE[1]) THEN
  2719.       FILEHANDLE[1] = 1
  2720.     ENDIF
  2721.     IF NOT ISASSIGNED(FILEHANDLE[2]) THEN
  2722.       FILEHANDLE[2] = DIRECTORY()
  2723.     ENDIF
  2724.  
  2725.  
  2726.     ProgType = FileHandle[1]
  2727.     FileDir = FileHandle[2]
  2728.     OKCancel = "Cancel"
  2729.     HelpMe.a = ""
  2730.  
  2731.     SHOWDIALOG "Program SetUp"
  2732.        PROC "DlgGetHelp"
  2733.           TRIGGER "OPEN", "UPDATE", "ACCEPT"
  2734.  
  2735.        @5,16 HEIGHT 15 WIDTH 48
  2736.  
  2737.        ; PaintPAL_Frame_Begin
  2738.        FRAME SINGLE FROM 0,1 TO 12,44
  2739.        PAINTCANVAS ATTRIBUTE 127 0,1,0,44
  2740.        PAINTCANVAS ATTRIBUTE 112 12,1,12,44
  2741.        PAINTCANVAS ATTRIBUTE 127 0,1,12,1
  2742.        PAINTCANVAS ATTRIBUTE 112 0,44,12,44
  2743.        ; PaintPAL_Frame_End
  2744.  
  2745.        ; PaintPAL_Frame_Begin
  2746.        FRAME SINGLE FROM 1,7 TO 5,37
  2747.        PAINTCANVAS ATTRIBUTE 112 1,7,1,37
  2748.        PAINTCANVAS ATTRIBUTE 127 5,7,5,37
  2749.        PAINTCANVAS ATTRIBUTE 112 1,7,5,7
  2750.        PAINTCANVAS ATTRIBUTE 127 1,37,5,37
  2751.        ; PaintPAL_Frame_End
  2752.  
  2753.        RADIOBUTTONS @3,17 HEIGHT 2 WIDTH 12
  2754.           "TapCis",
  2755.           "OzCIS"
  2756.           TAG "ProgTag"
  2757.           TO ProgType
  2758.  
  2759.        LABEL @2,11
  2760.           "CIS Navigation Program"
  2761.           FOR "ProgTag"
  2762.  
  2763.        ACCEPT @8,3 WIDTH 40
  2764.           "A50"
  2765.           TAG "LocationTag"
  2766.           TO FileDir
  2767.  
  2768.        LABEL @7,7
  2769.           "Location of MSG and CAT Files "
  2770.           FOR "LocationTag"
  2771.  
  2772.        PUSHBUTTON @10,5 WIDTH 8
  2773.           "~O~k"
  2774.           OK
  2775.           DEFAULT
  2776.           VALUE "OK"
  2777.           TAG "OkTag"
  2778.           TO OKCancel
  2779.  
  2780.        PUSHBUTTON @10,18 WIDTH 8
  2781.           "~H~elp"
  2782.           VALUE HelpMeDlg(1)
  2783.           TAG "HelpTag"
  2784.           TO HelpMe.a
  2785.  
  2786.        PUSHBUTTON @10,31 WIDTH 10
  2787.           "~C~ancel"
  2788.           CANCEL
  2789.           VALUE "Cancel"
  2790.           TAG "CancelTag"
  2791.           TO OKCancel
  2792.     ENDDIALOG
  2793.  
  2794.      ; PaintPAL_Generated_Code_End(448222737)
  2795.  
  2796.     IF OKCancel = "OK" THEN
  2797.         COEDIT "Start"
  2798.         [type] = PROGTYPE
  2799.         FILEHANDLE[1] = PROGTYPE
  2800.         IF FILEDIR > "" THEN
  2801.             A=LEN(FILEDIR)
  2802.             IF SUBSTR(FILEDIR, A,1) <> "\\" THEN
  2803.                 FILEDIR = FILEDIR +"\\"
  2804.             ENDIF
  2805.             [directory] = FILEDIR
  2806.             FILEHANDLE[2] = FILEDIR
  2807.         ELSE FILEHANDLE[2] = DIRECTORY()
  2808.         ENDIF
  2809.         [done] = "Y"
  2810.         FILEHANDLE[3] = "Y"
  2811.         DO_IT!
  2812.         CLEARALL
  2813.     ENDIF
  2814. ENDPROC
  2815. WRITELIB LIBNAME start.m
  2816. RELEASE PROCS start.m
  2817. LB_DISPLAYPROGRESS.U(PROCTOTAL.N, "Start.m")
  2818.  
  2819.  
  2820.  
  2821. PROC DlgGetHelp(EventType, TagValue, EventValue, ElementValue)
  2822.   SWITCH
  2823.     CASE EventType = "ACCEPT" :
  2824.          If HelpMe.a > ""  Then
  2825.            REPAINTDIALOG
  2826.            RETURN False
  2827.          ENDIF
  2828.     CASE EventType = "UPDATE" :
  2829.     CASE eventtype = "OPEN" :
  2830.          WINDOW HANDLE DIALOG TO dlg.h
  2831.   ENDSWITCH
  2832. ENDPROC
  2833. WRITELIB LIBNAME DlgGetHelp
  2834. RELEASE PROCS DlgGetHelp
  2835. LB_DISPLAYPROGRESS.U(PROCTOTAL.N, "DlgGetHelp")
  2836.  
  2837.  
  2838.  
  2839. PROC HelpMeDlg(nbr) ; Displays available printer
  2840.    PRIVATE  nbr
  2841.  
  2842.    SWITCH
  2843.       CASE nbr = 1:
  2844.          Ok.u("HELP", "Use the Arrow Keys or Mouse to choose the/correct CIS program.//Enter the directory where your message and /catalog files are located..." ,true,false)
  2845.       CASE nbr = 2:
  2846.          Ok.u("HELP", "Use the Arrow Keys and Space Bar/or Mouse to choose the/files to import..." ,true,false)
  2847.       CASE nbr = 3:
  2848.          OK.U("Help","Use Mouse on SpeedBar to move back/and forth through the records//Or Press F10 for Menu Items//Memo Window can be Maximized",true,false)
  2849.       CASE nbr = 4:
  2850.          OK.U("Help","Select you Forum by scrolling through list/Tab or Mouse to Sections list/Choose Section//Enter date range/or Choose ALL or Today...",true,false)
  2851.       CASE nbr = 5:
  2852.          Ok.u("HELP", "Use the Arrow Keys and Space Bar/or Double-Click with the Mouse/to choose the Subjects..." ,true,false)
  2853.    ENDSWITCH
  2854.    RETURN false
  2855. ENDPROC
  2856. WRITELIB LIBNAME HelpMeDlg
  2857. RELEASE PROCS HelpMeDlg
  2858. LB_DISPLAYPROGRESS.U(PROCTOTAL.N, "HelpMeDlg")
  2859.  
  2860.  
  2861.  
  2862. ;┌───────────────────────────────────────────────────────────────────────────┐
  2863. ;│                                                                           │
  2864. ;│ Copyright (c) 1992   Martin W. Rudy   All Rights Reserved                 │
  2865. ;│ This program can be used/copied/modified without charge provided this     │
  2866. ;│ copyright notice is included without change, and that any accompanying    │
  2867. ;│ documentation includes "Portions of this code Copyright (c) 1992,         │
  2868. ;│ Martin W. Rudy  All Rights Reserved"                                      │
  2869. ;│                                                                           │
  2870. ;└───────────────────────────────────────────────────────────────────────────┘
  2871.  
  2872. ; This is an example of displaying a list of values in a picklist and allowing
  2873. ; multiple values to be selected.  As elements in the picklist are selected
  2874. ; they are placed in a second picklist.  Dynarray elements can be moved
  2875. ; between the picklists using the pushbuttons, spacebar on the current
  2876. ; element, or double click with the mouse.
  2877.  
  2878.  
  2879. PROC DlgGetFiles()
  2880.  PRIVATE sysinfo_bag,                            ;  Dynamic array for SYSINFO
  2881.          OkCancel,                         ;  Pushbutton variable
  2882.          additem,                                ;  Pushbutton variable
  2883.          addall,                                 ;  Pushbutton variable
  2884.          removeitem,                             ;  Pushbutton variable
  2885.          removeall,                              ;  Pushbutton variable
  2886.          MtHInFile,                                   ;  Picklist variable
  2887.          MtHOutFile,                                ;  Picklist variable
  2888.          HelpMe.a
  2889.  
  2890.     DYNARRAY MtHFileChoice[]                      ; values does not exist
  2891.     VIEW "List"                                  ; create it
  2892.     SCAN
  2893.       MtHFileChoice[[Name]] = [Name]
  2894.     ENDSCAN
  2895.     CLEARIMAGE
  2896.  
  2897.   DYNARRAY MtHFileSelect[]                        ;  Create dynarray for selected
  2898.                                                  ; values
  2899.   SYSINFO TO sysinfo_bag                         ;  Get screen height and width
  2900.   HelpMe.a = ""
  2901.   ; PaintPAL_Generated_Code_Begin(448885377)
  2902.  
  2903.   SHOWDIALOG "Files to Import"  ; D:\CIS\IMPORT1.DLG
  2904.      PROC "DlgGetFilesProc"
  2905.         TRIGGER "UPDATE", "SELECT"
  2906.  
  2907.      @INT((sysinfo_bag["ScreenHeight"]-17)/2),INT((sysinfo_bag["ScreenWidth"]-66)/2) HEIGHT 19 WIDTH 68
  2908.  
  2909.      ; PaintPAL_Frame_Begin
  2910.      FRAME SINGLE FROM 0,0 TO 16,65
  2911.      PAINTCANVAS ATTRIBUTE 112 0,0,0,65
  2912.      PAINTCANVAS ATTRIBUTE 127 16,0,16,65
  2913.      PAINTCANVAS ATTRIBUTE 112 0,0,16,0
  2914.      PAINTCANVAS ATTRIBUTE 127 0,65,16,65
  2915.      ; PaintPAL_Frame_End
  2916.  
  2917.      PICKDYNARRAYINDEX @2,2 HEIGHT 13 WIDTH 21
  2918.         MtHFileChoice
  2919.         TAG "mthinfilelist"
  2920.         TO MtHInFile
  2921.  
  2922.      LABEL @1,1
  2923.         "Files Available"
  2924.         FOR "mthinfilelist"
  2925.  
  2926.      PUSHBUTTON @2,24 WIDTH 17
  2927.         "Add ~I~tem >"
  2928.         VALUE "AddItem"
  2929.         TAG "AddItem"
  2930.         TO additem
  2931.  
  2932.      PUSHBUTTON @4,24 WIDTH 17
  2933.         "~A~dd All >>"
  2934.         VALUE "AddAll"
  2935.         TAG "AddAll"
  2936.         TO addall
  2937.  
  2938.      PUSHBUTTON @6,24 WIDTH 17
  2939.         "< Re~m~ove Item"
  2940.         VALUE "RemoveItem"
  2941.         TAG "RemoveItem"
  2942.         TO removeitem
  2943.  
  2944.      PUSHBUTTON @8,24 WIDTH 17
  2945.         "<< ~R~emove All"
  2946.         VALUE "RemoveAll"
  2947.         TAG "RemoveAll"
  2948.         TO removeall
  2949.  
  2950.      PICKDYNARRAYINDEX @2,42 HEIGHT 13 WIDTH 21
  2951.         MtHFileSelect
  2952.         TAG "MtHOutFile"
  2953.         TO MtHOutFile
  2954.  
  2955.      LABEL @1,41
  2956.         "Files Chosen"
  2957.         FOR "MtHOutFile"
  2958.  
  2959.      PUSHBUTTON @10,24 WIDTH 17
  2960.         "~O~K"
  2961.         OK
  2962.         VALUE "OK"
  2963.         TAG "OK"
  2964.         TO OkCancel
  2965.  
  2966.      PUSHBUTTON @12,24 WIDTH 17
  2967.         "~C~ancel"
  2968.         CANCEL
  2969.         VALUE "Cancel"
  2970.         TAG "Cancel"
  2971.         TO OkCancel
  2972.  
  2973.      PUSHBUTTON @14,24 WIDTH 17
  2974.         "~H~elp"
  2975.         VALUE HelpMeDlg(2)
  2976.         TAG ""
  2977.         TO HelpMe.a
  2978.   ENDDIALOG
  2979.  
  2980.   ; PaintPAL_Generated_Code_End(448885377)
  2981.  
  2982.  
  2983.   IF retval = False OR                           ;  If the dialog box was
  2984.      DYNARRAYSIZE(MtHFileSelect) = 0 THEN         ; cancelled or no departments
  2985.        RETURN False                              ; selected than return False
  2986.   ELSE                                           ; otherwise return True
  2987.     RETURN True
  2988.   ENDIF
  2989.  
  2990. ENDPROC
  2991. WRITELIB LIBNAME DlgGetFiles
  2992. RELEASE PROCS DlgGetFiles
  2993. LB_DISPLAYPROGRESS.U(PROCTOTAL.N, "DlgGetFiles")
  2994.  
  2995.  
  2996.  
  2997.  
  2998. PROC DlgGetFilesProc(triggertype,tagvalue,eventvalue,elementvalue)
  2999.   SWITCH
  3000.     CASE triggertype="UPDATE":
  3001.       SWITCH
  3002.         CASE tagvalue = "AddItem" :
  3003.              IF DYNARRAYSIZE(MtHFileChoice) = 0 THEN
  3004.                RETURN False
  3005.              ENDIF
  3006.              MtHFileSelect[CONTROLVALUE("mthinfilelist")] = MtHFileChoice[CONTROLVALUE("mthinfilelist")]
  3007.              RELEASE VARS MtHFileChoice[CONTROLVALUE("mthinfilelist")]
  3008.              SELECTCONTROL "mthinfilelist"
  3009.              REFRESHDIALOG
  3010.         CASE tagvalue = "AddAll" :
  3011.              IF DYNARRAYSIZE(MtHFileChoice) = 0 THEN
  3012.                RETURN False
  3013.              ENDIF
  3014.              FOREACH element In MtHFileChoice
  3015.                MtHFileSelect[element] = MtHFileChoice[element]
  3016.              ENDFOREACH
  3017.              DYNARRAY MtHFileChoice[]
  3018.              SELECTCONTROL "MtHOutFile"
  3019.              REFRESHDIALOG
  3020.         CASE tagvalue = "RemoveItem" :
  3021.              IF DYNARRAYSIZE(MtHFileSelect) = 0 THEN
  3022.                RETURN False
  3023.              ENDIF
  3024.              MtHFileChoice[CONTROLVALUE("MtHOutFile")] = MtHFileSelect[CONTROLVALUE("MtHOutFile")]
  3025.              RELEASE VARS MtHFileSelect[CONTROLVALUE("MtHOutFile")]
  3026.              REFRESHDIALOG
  3027.              IF DYNARRAYSIZE(MtHFileSelect) > 0 THEN
  3028.                SELECTCONTROL "mthinfilelist"
  3029.              ELSE
  3030.                SELECTCONTROL "MtHOutFile"
  3031.              ENDIF
  3032.         CASE tagvalue = "RemoveAll" :
  3033.              IF DYNARRAYSIZE(MtHFileSelect) = 0 THEN
  3034.                RETURN False
  3035.              ENDIF
  3036.              FOREACH element IN MtHFileSelect
  3037.                MtHFileChoice[element] = MtHFileSelect[element]
  3038.              ENDFOREACH
  3039.              DYNARRAY MtHFileSelect[]
  3040.              SELECTCONTROL "mthinfilelist"
  3041.              REFRESHDIALOG
  3042.       ENDSWITCH
  3043.     CASE triggertype = "SELECT" :
  3044.          SWITCH
  3045.            CASE tagvalue = "mthinfilelist" :
  3046.              MtHFileSelect[CONTROLVALUE("mthinfilelist")] = MtHFileChoice[CONTROLVALUE("mthinfilelist")]
  3047.              RELEASE VARS MtHFileChoice[CONTROLVALUE("mthinfilelist")]
  3048.              REFRESHDIALOG
  3049.              REPAINTDIALOG
  3050.            CASE tagvalue = "MtHOutFile" :
  3051.              MtHFileChoice[CONTROLVALUE("MtHOutFile")] = MtHFileSelect[CONTROLVALUE("MtHOutFile")]
  3052.              RELEASE VARS MtHFileSelect[CONTROLVALUE("MtHOutFile")]
  3053.              REFRESHDIALOG
  3054.              REPAINTDIALOG
  3055.          ENDSWITCH
  3056.   ENDSWITCH
  3057.   RETURN TRUE
  3058. ENDPROC
  3059. WRITELIB LIBNAME DlgGetFilesProc
  3060. RELEASE PROCS DlgGetFilesProc
  3061. LB_DISPLAYPROGRESS.U(PROCTOTAL.N, "DlgGetFilesProc")
  3062.  
  3063.  
  3064.  
  3065. PROC GetSubject()
  3066.    QUERY
  3067.  
  3068.  Querymsg | Start Msg | In Reply To | Msg Number |  Forum    | Sect Number |
  3069.           |           |             |            | Check ~fm | Check ~sect |
  3070.  
  3071.  Querymsg | Sect Name |  Date  |  Time  | Subject  | From Name |
  3072.           |           |        |        | Check    |           |
  3073.  
  3074.  Querymsg | From PPN | To Name | To PPN | Message |
  3075.           |          |         |        |         |
  3076.  
  3077.    ENDQUERY
  3078.  
  3079.    DO_IT!
  3080.    clearall
  3081.    IF nrecords("answer") >= 1 THEN
  3082.       MENU {Modify} {Restructure} {Answer}
  3083.       END
  3084.       DOWN "get"
  3085.       RIGHT
  3086.       "a1" Do_It!
  3087.       EMPTY "Subject"
  3088.       ADD "answer" "Subject"
  3089.       clearall
  3090.       rec=nrecords("Subject")
  3091.       ARRAY files[rec]
  3092.       ARRAY selfiles[rec]
  3093.  
  3094.       autolib= "paradox,crm"
  3095.  
  3096.       VIEW "Subject"
  3097.       SCAN
  3098.          files[recno()] = [subject]
  3099.       ENDSCAN
  3100.       CLEARALL
  3101.       DynArray Opts[]
  3102.       Opts["TITLE"]="Subjects"
  3103.       goon1 = ""
  3104.       goon1=wbsarraycheckboxplus(99,99,files,selfiles,Opts,"gray")
  3105.       autolib="Paradox"
  3106.       IF goon1 <> "Esc" THEN
  3107.          COEDIT "subject"
  3108.          FOR x FROM 1 TO rec
  3109.             IF isassigned(selfiles[x]) AND selfiles[x] = true THEN
  3110.                MOVETO record(x)
  3111.                [get] = "X"
  3112.             ENDIF
  3113.          ENDFOR
  3114.          DO_IT!
  3115.  
  3116.  
  3117.  
  3118.          QUERY
  3119.  
  3120.  subject | Forum   | Sect Number  | Subject | Get |
  3121.          | _a, ~fm | _b, ~sect    | _c      | X   |
  3122.  
  3123.  Querymsg | Start Msg | In Reply To | Msg Number |  Forum   | Sect Number |
  3124.           | Check     | Check       | Check      | Check _a | Check _b    |
  3125.  
  3126.  Querymsg | Sect Name |  Date  |  Time  | Subject  | From Name |
  3127.           | Check     | Check  | Check  | Check _c | Check     |
  3128.  
  3129.  Querymsg | From PPN | To Name | To PPN | Message |
  3130.           | Check    | Check   | Check  | Check   |
  3131.  
  3132.          ENDQUERY
  3133.          DO_IT!
  3134.          clearall
  3135.          IF nrecords("Answer") >=1 THEN
  3136.             EMPTY "querymsg"
  3137.             ADD "answer" "querymsg"
  3138.          ELSE
  3139.             goon1 = "Esc"
  3140.          ENDIF
  3141.       ELSE
  3142.          goon1 = "Esc"
  3143.  
  3144.       ENDIF
  3145.    ELSE
  3146.       goon1 = "Esc"
  3147.  
  3148.    ENDIF
  3149.    EMPTY "Subject"
  3150.    clearall
  3151.    RETURN goon1
  3152. ENDPROC
  3153. WRITELIB LIBNAME GetSubject
  3154. RELEASE PROCS GetSubject
  3155. LB_DISPLAYPROGRESS.U(PROCTOTAL.N, "GetSubject")
  3156.  
  3157.  
  3158.  
  3159.